Der PHP-Editor Xigua stellt Ihnen heute eine Funktion net.LookupHost in der Go-Sprache vor. Diese Funktion kann bei der Hostnamensauflösung doppelte IP-Adressen zurückgeben. In praktischen Anwendungen kann dies zu Problemen führen, z. B. zu mehrmaligem Herstellen einer Verbindung zum gleichen Server. Daher müssen wir die Ursache und Lösung dieses Problems verstehen, um die Richtigkeit und Stabilität des Codes sicherzustellen. Im folgenden Artikel werden wir dieses Problem im Detail analysieren und entsprechende Lösungen anbieten. bleiben Sie dran!
Ich versuche, net.lookuphost auszuführen, um die IP-Adresse des Computers abzurufen, auf dem mein Code ausgeführt wird. Es funktioniert auf den meisten Computern, aber auf einigen gibt es einen Slice mit zwei Einträgen zurück: der richtigen IP und dem doppelten Eintrag mit derselben IP.
Ich habe versucht, nslookup auf dem Host auszuführen, aber es wurde nur ein Eintrag zurückgegeben.
Code zur Frage hinzufügen -
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)
Ich habe erwartet, dass net.lookuphost nur einen Eintrag in der Antwort liefert, aber es gab zwei identische Einträge in der Antwort.
Sieht nach einem Problem mit der DNS-Auflösung aus.
Wenn es auf anderen Servern funktioniert, überprüfen Sie die Datei /etc/hosts
.
Das System fragt zunächst die Datei /etc/hosts und dann den DNS-Server ab.
Quelle: https://debian-handbook.info /browse/stable/sect.hostname-name-service.html
Das obige ist der detaillierte Inhalt vonGoLang: net.LookupHost gibt doppelte IP zurück. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!