作者mcauther (乘着风去旅行)
看板LinuxDev
标题[问题] 侦测网路介面
时间Sat Oct 18 09:13:41 2008
请问一下是否有办法在 linux 下侦测 网路介面是否可以使用呢?
因为我现在在 embedded system 开发
需要 bind() 一个 interface address 的 程式
我的 程式设定 是 可以在 pppoe 和 dhcp 之间做切换
所以 IP 位址也会改变
但是因为设定成 pppoe 时 , 它需要启动 pppd 以及一些 script
然後再从远端取得 IP , 这大概需要 1 ~ 2 分钟左右
因此我会先让程式 loop sleep 来等待
并且用 ioctl() 去抓现在介面的名字是否有 "ppp0"
如果有就 开始程式
这过程 ( dhcp => pppoe) 是没问题的
但是在从 ( pppoe => dhcp ) 切回去时 却会发生问题
就是 ioctl() 已经抓到 dhcp 的指定 IP 了
但是程式在 bind() 到 address 时却发生无法 作用的情形 (error)
接着程式就 自动终止(这是程式自己写的保护机制)
但是过了一下再 开启程式 时 又可以 开启了 ( bind() success )
请问我要如何判断这个界面到底是否可以 bind()成功呢 ?
是否可以用从 ioctl() 抓下来的 下面有一个 flag 叫做 UP 和 DOWN 来判断呢?
谢谢 !!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.116.238.93