2012-01-05 184 views
2

我的操作系統是CentOS 6.在我的/ etc/sysconfig/network-scripts/ifcfg-eth0文件中,我已指定網絡接口"NAME""foo"(讓我們假設)。從java獲取接口名稱

NAME=foo

我希望能夠從Java中獲得該接口"NAME"。我嘗試以下,沒有一個結果:


    for (Enumeration nis = NetworkInterface.getNetworkInterfaces(); nis.hasMoreElements();) { 
     NetworkInterface ni = nis.nextElement(); 
    System.out.println(ni.getDisplayName() + " " + ni.getName()); 
    } 
 

它顯示了同樣的事情:

eth0 eth0

誰能告訴我,如果有可能得到的NAME一個網絡的價值,性質接口,在java中?

謝謝。

注意:指定NAME=foo時,屏幕右上角的網絡面板中該接口的名稱爲foo

+0

你嘗試重新啓動網絡接口的名字爲新值後的網絡? – 2012-01-05 07:33:21

+0

@KohányiRóbert是的。但是從我所看到的NetworkInterface類的getName()和getDisplayName()方法中,沒有任何與NAME屬性有關的東西。 – artaxerxe 2012-01-05 07:42:58

+1

是的,這些方法可能沒有指定它們是否返回_stuff_形式的* nix特定配置文件的鍵值,因爲它們試圖獨立。另外,根據定義'NetworkInterface.getName()'將/應該返回_network接口_的名稱。就你而言,我想'NAME'不是你的網絡接口的名稱,而是一個標籤爲'eth0'的標籤,它是_real_網絡接口和_real_名稱。 (雖然我不是* nix專家,但我對網絡接口及其名稱沒有足夠的瞭解)。 – 2012-01-05 08:13:26

回答

0

你確定你已經適當地改變網卡名稱,請查看以下鏈接CentOS NIC name change

+0

我沒有提及ethN名稱。我從ifcfg-ethN文件引用NAME屬性。我怎樣才能從Java訪問它?這是我的問題。 – artaxerxe 2012-01-05 12:26:45