2012-01-05 68 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