Comment faire de même dans le code java et où dois-je utiliser l'adresse IP et le nom d'hôte du serveur DNS.
Dark Matter
Une autre requête devra-t-on fournir l'adresse IP du serveur DNS dans tous les cas ou essaiera-t-il de la trouver par défaut.Je suis un peu confus ici si nous devons utiliser uniquement le nom d'hôte ou le nom d'hôte + l'adresse IP du serveur DNS?
Dark Matter
1
La recherche de l'adresse à l'aide du nom n'est pas compliquée. Tant que vous n'utilisez que le résolveur par défaut du système. Alors: avez-vous vraiment besoin d'utiliser l'adresse du serveur DNS?
AH
J'ai la même question: ai-je vraiment besoin d'une adresse de serveur DNS ou est-ce que cela résoudra l'adresse par défaut.BTW J'utilise un serveur AIX Unix.
Dites si j'ai une adresse IP DNS 10.37.221.152 et un nom d'hôte dit "www.student.com" alors comment puis-je trouver l'adresse IP.
Dark Matter
3
@DarkMatter: InetAddressdevrait obtenir l'adresse DNS résolue lorsque vous le demandez getHostAddress(). Je ne sais pas si vous pouvez le forcer à utiliser un serveur DNS spécifique .
thegrinner
Il doit donc idéalement résoudre par lui-même sans que le programmeur ne spécifie explicitement l'adresse du serveur DNS, n'est-ce pas?
Dark Matter
1
@DarkMatter Oui. Je crois qu'il utilise n'importe quel serveur DNS installé sur l'ordinateur lui-même.
Comme suggéré par tout ce qui précède, vous pouvez utiliser
InetAddress.getByName("hostName")mais cela peut vous donner une adresse IP en cache, lisez la documentation java pour la même chose. Si vous souhaitez obtenir une adresse IP à partir du DNS, vous pouvez utiliser:
En plus de ce que @daksh a souligné, vous pouvez désactiver le cache de réponse DNS comme suggéré ici, mais soyez conscient du moment de la désactivation du cache ainsi que de la mise en cache des réponses DNS effectuées par votre système d'exploitation ainsi que par d'autres serveurs DNS, comme suggéré ici . J'espère que cela aide
CrazyGreenHand
Pour une raison quelconque, cet appel me donne un résultat positif pour n'importe quel nom d'hôte. Je pensais que mon IP par défaut était défini, mais non, cela me donne une adresse IP spécifique pour tout hôte inconnu.
dig <hostname>
dans une ligne de commande?Réponses:
Jetez un œil à
InetAddress
lagetHostAddress()
méthode.InetAddress address = InetAddress.getByName("www.example.com"); System.out.println(address.getHostAddress());
la source
InetAddress
devrait obtenir l'adresse DNS résolue lorsque vous le demandezgetHostAddress()
. Je ne sais pas si vous pouvez le forcer à utiliser un serveur DNS spécifique .Vous pouvez le faire comme ceci:
for(InetAddress addr : InetAddress.getAllByName("stackoverflow.com")) System.out.println(addr.getHostAddress());
la source
Vous pouvez utiliser InetAddress pour cela. Essayez le code ci-dessous,
InetAddress address = InetAddress.getByName("www.yahoo.com"); System.out.println(address.getHostAddress()); System.out.println(address.getHostName());
la source
Comme suggéré par tout ce qui précède, vous pouvez utiliser
InetAddress.getByName("hostName")
mais cela peut vous donner une adresse IP en cache, lisez la documentation java pour la même chose. Si vous souhaitez obtenir une adresse IP à partir du DNS, vous pouvez utiliser:InetAddress[] ipAddress = DNSNameService.lookupAllHostAddr("hostName");
la source