2017-09-28 16 views
0

Essayer d'obtenir le nom d'hôte d'une adresse IP donnée dans un réseau local en utilisant java.Comment mettre automatiquement à jour les fichiers hôtes?

L'ordinateur distant est également ping, mais le nom d'hôte retourné est l'adresse IP elle-même.

En d'autres termes, ce problème est dû au fait que le "fichier hosts" sous system32/drivers/etc/hosts ne contient pas les informations nécessaires, donc je l'ai ajouté manuellement, et j'ai pu l'obtenir depuis le programme Java. Ce qui est étrange, c'est que, avant cela, j'ai connecté mon ordinateur à un autre réseau local (en utilisant mon téléphone) et je n'ai pas eu à modifier le fichier pour obtenir le nom d'hôte d'une machine distante, je suppose qu'il était déjà disponible dans le fichier.

Ma question est, est-il possible de configurer le routeur afin qu'il ajoute les noms d'hôte par lui-même dans le bon fichier? parce qu'en fait quand je vérifie la page principale du routeur, (qui peut être obtenue en tapant 192.168.1.1 dans un navigateur) les noms d'hôte des machines connectées au routeur sont montrés.

Merci d'avance.

Répondre

0

Une recherche d'un Hostname par IP peut être réalisé comme ceci: java.net.InetAddress.getByName("192.168.1.1").getHostName(), sinon, vous pouvez utiliser InetAddress.getByAddress(new byte[] {(byte) 192, (byte) 168, (byte) 1, (byte) 1)});

La recherche impliquera les deux/etc/hosts et les serveurs DNS configurés. Si vous avez besoin de plus d'informations DNS de base, vous pouvez utiliser les recherches DNS via JNDI (voir com.sun.jndi.dns.DnsContextFactory et JNDI/DNS Service Provider).

Dans ce cas, un serveur DNS réel est requis.

+0

Désolé pour la réponse tardive. Je sais que c'est fait en appelant, java.net.InetAddress.getByName ("192.168.1.1"). GetHostName(). Mais il ne renvoie pas le nom d'hôte, il renvoie l'adresse, sauf lorsque j'ajoute manuellement le nom d'hôte dans le fichier/etc/hosts. – Mouley