[問題] 偵測網路介面

看板LinuxDev作者 (乘著風去旅行)時間15年前 (2008/10/18 09:13), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
請問一下是否有辦法在 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
文章代碼(AID): #18-JX64n (LinuxDev)
文章代碼(AID): #18-JX64n (LinuxDev)