Obtenir "l'état du média" des cartes réseau dans Windows à l'aide de java?
Comment puis-je obtenir l'état du support d'une carte réseau sous Windows? J'ai cherché un peu et il ne semble pas que la classe java.net.NetworkInterface offre cette capacité, ce qui est logique car il semble être un concept Windows qui ne s'applique même pas à tous les adaptateurs. Lorsque je lance ipconfig, j'obtiens quelque chose comme ce qui suit:
Windows IP Configuration
Wireless LAN adapter Wireless Network Connection 5:
Connection-specific DNS Suffix . : BlahBlah.Blah
IPv4 Address. . . . . . . . . . . : 192.168.113.44
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.113.1
Ethernet adapter Local Area Connection 8:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . : BlahBlah.Blah
Et si j'utilise le script trouvé à Quelqu'un peut-il expliquer pourquoi Java GetNetworkInterfaces renvoie autant d'interfaces sur Windows 7 pour obtenir détails de ces adaptateurs (avec les autres supprimés) j'obtiens quelque chose comme ce qui suit:
Display name: Software Loopback Interface 1
Name: lo
InetAddress: /0:0:0:0:0:0:0:1
InetAddress: /127.0.0.1
Up? true
Loopback? true
PointToPoint? false
Supports multicast? true
Virtual? false
Hardware address: []
MTU: -1
Display name: Intel(R) 82579LM Gigabit Network Connection #2
Name: eth13
InetAddress: /172.16.4.29
Up? false
Loopback? false
PointToPoint? false
Supports multicast? true
Virtual? false
Hardware address: [60, -105, 14, -77, -123, 110]
MTU: 1500
Display name: Intel(R) Centrino(R) Advanced-N 6205 #3
Name: net11
InetAddress: /192.168.113.44
Up? false
Loopback? false
PointToPoint? false
Supports multicast? true
Virtual? false
Hardware address: [60, -105, 14, -77, -123, 110]
MTU: 1500
Réflexions sur la façon dont je peux déterminer si l'adaptateur Ethernet est"déconnecté"?
1 answers
Vous pouvez prendre référence à l'extrait ci-dessous. Fondamentalement !networkInterface.isUp()
devrait faire l'affaire pour vous.
List<NetworkInterface> nic = new ArrayList<>();
interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements()) {
NetworkInterface networkInterface = interfaces.nextElement();
if (!networkInterface.isUp())
continue;
nic.add(networkinterface);
}