InetAddress getLocalHost() ne retourne pas prévu adresse IP à partir de C:\WINDOWS\system32\drivers\etc\hosts
Dans le fichier C:\WINDOWS\system32\drivers\etc\hosts je n'ai que la ligne suivante
192.168.0.23 computername.domain.com computername
Quand je lance
InetAddress localhost = InetAddress.getLocalHost();
System.out.println("getLocalHost:" + localhost);
J'attendrais la sortie de la
getLocalHost:computername/192.168.0.23
mais il sort que
getLocalHost:computername/192.168.0.107
Toutes les idées sur ce qui se passe? Si la configuration faite dans un autre fichier (trop)?
MODIFIER
InetAddress.getByName('computername')
produit la même adresse IP que d'getLocalHost()
.
Pourquoi vous attendez-vous à une entrée dans le fichier hosts pour affecter l'adresse IP localhost? J'imagine que si vous faites un InetAddress.getByName ("computername"), ce serait vous donner l'adresse IP que vous voulez.
OriginalL'auteur Lars Andren | 2011-04-28
Vous devez vous connecter pour publier un commentaire.
getLocalHost()
renvoie l'IP réelle de l'une de vos cartes réseau. Si vous ne ipconfig dans votre ligne de commande de l'un de vos cartes doit retourner la même adresse.Si vous avez plusieurs cartes et le souhaitez, vous aurez besoin d'utiliser
NetworkInterface.getNetworkInterfaces()
et puis tirez sur la liste de InetAddresses de chaque interface.InetAddress.getLocalHost()
doit être évitée. Les gens n'ont tout simplement de réaliser que la réponse de cette méthode est seulement pour donner le résultat que vous attendez. Scénario: Votre application a bien fonctionné pendant des années. Ensuite vous déplacer vers un ordinateur hôte multi-homed et bang! Il s'arrête de fonctionner comme prévu. Moral: ne comptez pas surInetAddress.getLocalHost()
pour rien, mais textuelles info. J'ai upvoted cette réponse.OriginalL'auteur Bringer128
Pourquoi les entrées de la
hosts
fichier affecter l'adresse IP delocalhost
?InetAddress.getByName('computername')
devrait vous donner l'adresse IP que vous attendez.Il peut, mais ne peut pas. Fichier Hosts n'est pas le seul, et pas toujours la principale source de nom à l'adresse de cartographie. Sous windows que vous avez, DNS et WINS, au moins.
Sur Windows, je crois que le fichier hosts entrée sera la première chose, leva les yeux pour la résolution de nom, qui est pourquoi la plupart des logiciels anti-malware va ajouter une adresse de bouclage de la cartographie pour les logiciels malveillants connus servant d'hôtes dans le fichier hosts, empêchant ainsi la navigation de ce nom de domaine. [Non pas définitive, mais la première source que j'ai trouvé].(vlaurie.com/computers2/Articles/hosts.htm)
OriginalL'auteur no.good.at.coding