Maison >développement back-end >Golang >GoLang : net.LookupHost renvoie une adresse IP en double
Ce que l'éditeur php Xigua vous présentera aujourd'hui est une fonction net.LookupHost dans le langage Go. Cette fonction peut renvoyer des adresses IP en double lors de la résolution du nom d'hôte. Dans des applications pratiques, cela peut entraîner des problèmes tels que la connexion plusieurs fois au même serveur. Par conséquent, nous devons comprendre la cause et la solution de ce problème pour garantir l’exactitude et la stabilité du code. Dans l'article suivant, nous analyserons ce problème en détail et proposerons les solutions correspondantes. restez à l'écoute!
J'essaie d'exécuter net.lookuphost pour obtenir l'adresse IP de l'ordinateur exécutant mon code. Cela fonctionne sur la plupart des machines, mais sur quelques-unes, il renvoie une tranche avec deux entrées : l'adresse IP correcte et l'entrée en double avec la même adresse IP.
J'ai essayé d'exécuter nslookup sur l'hôte mais il ne renvoie qu'une seule entrée.
Ajouter le code à la question -
hostname, _ := os.Hostname() ips, err := net.LookupHost(hostname) if err != nil { fmt.Printf("%d\n", err.Error()) } fmt.Printf("Hello, 世界 %#v \n", ips) ips2, err := net.LookupIP(hostname) if err != nil { fmt.Printf("%d\n", err.Error()) } fmt.Printf("Hello, 世界 %#v \n", ips2)
Je m'attendais à ce que net.lookuphost ne donne qu'une seule entrée dans la réponse, mais il a donné deux entrées identiques dans la réponse.
On dirait un problème de résolution DNS.
Si cela fonctionne sur d'autres serveurs, essayez de vérifier le fichier /etc/hosts
.
Le système interroge d'abord le fichier /etc/hosts puis le serveur DNS.
Source : https://debian-handbook.info /browse/stable/sect.hostname-name-service.html
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!