Analyse d'un réseau avec NetworkInterface
Bonjour,
Je voudrais approfondir les possibilités de découverte du réseau local qu'offre java. Je me penche sur NetworkInterface, et je m'étonne des différences que je trouve entre un poste linux et le même sous windows.
À partir de NetworkInterface.getNetworkInterfaces(), j'affiche, de façon récursive, pour chaque interface réseau :
- le getDisplayName,
- le getName,
- le isUp,
Et pour chaque inetAdress de chaque interface :
- le getHostName,
- le getHostAddress,
- le isReachable(1000)
... et avec tout ça j'obtiens la chose suivante sous Linux :
Code:
1 2 3 4 5 6
| eth0 / disponible
fe80:0:0:0:219:66ff:fe0f:9e5c%2 / disponible
met42-1-82-237-232-112.fbx.proxad.net - 82.237.232.112 / disponible
lo / disponible
0:0:0:0:0:0:0:1%1 / disponible
localhost - 127.0.0.1 / disponible |
... et avec exactement le même poste, sous windows XP :
Code:
1 2 3 4
| MS TCP Loopback interface - lo / disponible
localhost - 127.0.0.1 / disponible
Carte Fast Ethernet compatible VIA #2 - Miniport d'ordonnancement de paquets - eth0 / disponible
micro-706233ec4 - 82.237.232.112 / indisponible |
Bon... Chacun se comprend, mais c'est pas vraiment Run Anywhere tout ça. Il semble que seules les adresses IP restent identiques.
Ce qui me gène le plus, c'est la ligne correspondant à la carte Ethernet, qui correspond à la liaison internet ; par le isReachable(1000) elle est donnée disponible sur Linux, indisponible sur Windows. En fait elle est disponible dans les deux cas.
Comment expliquer / résoudre cette différence d'analyse de disponibilité ?
Merci.