[問題] 偵測網路介面
請問一下是否有辦法在 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
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
1
1
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章