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 :
... et avec exactement le même poste, sous windows XP :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Bon... Chacun se comprend, mais c'est pas vraiment Run Anywhere tout ça. Il semble que seules les adresses IP restent identiques.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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.
Partager