2013-12-17 54 views
0

我有兩個網卡在我的device.user可以插入電纜給任何人的網卡,所以我想知道哪個網卡用戶使用。因爲我只知道eth0或使用eth1,我可以設置它。如何知道設備使用eth0或eth1的網卡

DevInfo.setGateWay("192.168.85.255"); 
    DevInfo.setIfName("eth0"); 
    DevInfo.setIpAddress("192.168.84.134"); 
    DevInfo.setNetMask("255.255.254.0"); 

你可以看到上面的代碼,我硬編碼使用eth0。有沒有一種方法來檢查用戶使用eth0或eth1?

編輯:使用mean,用戶插入電纜,換句話說,如何知道哪個網卡插入電纜。我可以修改固件,但我不知道我可以修改哪些代碼。

+0

請參閱編輯我的答案以獲取類似問題的鏈接 – Raffaele

回答

0

我不這麼認爲,因爲要查詢您需要訪問的網卡的物理狀態operating system interfaces,我不認爲它們對Android Java API可見。但是,如果您真的需要它,尤其是如果您定位一小組設備,則可能可以通過修改固件來開發本機部件。

需要注意的是問題本身,「有沒有檢查用戶使用的eth0或eth1的方法」過於含糊:用戶可以使用 eth0和eth1,或兩者都不是。接口的名稱可能會更改。 使用是什麼意思?設備的路由表可以配置爲使用兩者來訪問不同的網絡。我猜你有興趣用於連接到默認網關IFACE,但是這僅僅是一個假設,你應該清楚你需要了解:

  • ,如果你想做的事可以做
  • 如果它可以用一個簡單的應用程序來完成

看看this question如何查詢網卡狀態(主要通過查詢/sys/class/net,但我不知道它是否工作在目標設備上)以及如何攔截plug/unplug事件(使用rtnetlink和udev,再次不確定它會和我rk在您的設備上)。我只想再次強調,瞭解卡片的物理狀態可能不足以滿足您的高級要求

+0

謝謝,我修改了我的問題 – pengwang

相關問題