我的操作系统是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
。
你尝试重新启动网络接口的名字为新值后的网络? – 2012-01-05 07:33:21
@KohányiRóbert是的。但是从我所看到的NetworkInterface类的getName()和getDisplayName()方法中,没有任何与NAME属性有关的东西。 – artaxerxe 2012-01-05 07:42:58
是的,这些方法可能没有指定它们是否返回_stuff_形式的* nix特定配置文件的键值,因为它们试图独立。另外,根据定义'NetworkInterface.getName()'将/应该返回_network接口_的名称。就你而言,我想'NAME'不是你的网络接口的名称,而是一个标签为'eth0'的标签,它是_real_网络接口和_real_名称。 (虽然我不是* nix专家,但我对网络接口及其名称没有足够的了解)。 – 2012-01-05 08:13:26