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 : 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
... et avec exactement le même poste, sous windows XP :

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
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.