Apa yang akan diperkenalkan oleh editor php kepada anda hari ini ialah jaring fungsi.LookupHost dalam bahasa Go Fungsi ini mungkin mengembalikan alamat IP pendua apabila melaksanakan resolusi nama hos. Dalam aplikasi praktikal, ini boleh menyebabkan masalah seperti menyambung ke pelayan yang sama beberapa kali. Oleh itu, kita perlu memahami punca dan penyelesaian masalah ini untuk memastikan ketepatan dan kestabilan kod. Dalam artikel berikut, kami akan menganalisis masalah ini secara terperinci dan memberikan penyelesaian yang sepadan. nantikan!
Saya cuba menjalankan net.lookuphost untuk mendapatkan alamat ip komputer yang menjalankan kod saya. Ia berfungsi pada kebanyakan mesin, tetapi pada beberapa mesin ia mengembalikan kepingan dengan dua entri: ip yang betul dan entri pendua dengan ip yang sama.
Saya cuba menjalankan nslookup pada hos tetapi ia hanya mengembalikan satu entri.
Tambahkan kod pada soalan -
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)
Saya menjangkakan net.lookuphost hanya memberikan satu entri dalam respons, tetapi ia memberikan dua entri yang sama dalam respons.
Kelihatan seperti isu penyelesaian DNS.
Jika ia berfungsi pada pelayan lain, cuba semak fail /etc/hosts
.
Sistem mula-mula menanyakan fail /etc/hosts dan kemudian pelayan DNS.
Sumber: https://debian-handbook.info /browse/stable/sect.hostname-name-service.html
Atas ialah kandungan terperinci GoLang: net.LookupHost mengembalikan ip pendua. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!