5

interface-bounding:Linux 绑定驱动程序提供了一种将多个网络接口聚合为单个逻辑绑定接口的方法。逻辑有界接口将只有一个 MAC 地址,它与原始接口之一绑定。ifconfig将显示所有具有相同 MAC 地址的原始接口。

现在,我要在Java中找到每个接口的原始MAC地址。如何?

我已经确认我无法通过NetworkInterface.getInterfaceAddresses()NetworkInterface.getSubInterfaces()

还有其他方法吗?

更新:

边界前: 在此处输入图像描述

将 eth1 和 eth2 绑定到 bound0 后: 在此处输入图像描述

java代码显示接口信息:

ALL interfaces:[name:bond0 (bond0), name:eth0 (eth0), name:lo (lo)]
they are [{netIf bond0,host 192.168.122.38,mac 525400F801B9,ip 192.168.122.38}, {netIf eth0,host hatest02,mac 5254008C5B48,ip 192.168.10.38}]
4

3 回答 3

6
cat /proc/net/bonding/bond0

将向您展示两个绑定接口的原始 mac

完整输出,以下私人数据较少:

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eno49
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eno49
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 28:80:23:xx:xx:ec
Slave queue ID: 0

Slave Interface: eno50
MII Status: down
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 28:80:23:xx:xx:ed
Slave queue ID: 0*
于 2018-01-22T16:02:25.357 回答
0

cat /proc/net/bonding/bond X

其中bond X是绑定接口的名称

于 2020-03-10T11:06:44.473 回答
-1

NetworkInterface 没用,恕我直言。我从来没有从中得到可靠的信息。执行ifconfig并解析输出,这是你最好的选择。

更新:太棒了,有人投了反对票。所以发布一个答案并展示什么是有效的,因为我坚持 NetworkInterface 不可靠的断言。能够显示绑定信息的现代替代方法ifconfigip link show type bond.

于 2013-11-20T13:03:56.280 回答