Apabila membangunkan aplikasi rangkaian, mendapatkan alamat IP permintaan adalah keperluan yang sangat biasa. Di Golang, mendapatkan alamat IP permintaan juga sangat mudah.
Di Golang, kita boleh menggunakan struktur net/http
di bawah pakej Request
untuk mendapatkan alamat IP permintaan. Secara khusus, kita boleh mendapatkan alamat IP permintaan melalui atribut Request
dalam struktur RemoteAddr
.
Berikut ialah contoh program mudah yang menunjukkan cara menggunakan Golang untuk mendapatkan alamat IP permintaan:
package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { ip := r.RemoteAddr fmt.Printf("Request from IP address: %s ", ip) fmt.Fprintf(w, "Request from IP address: %s ", ip) }) http.ListenAndServe(":8080", nil) }
Dalam contoh program di atas, kami menggunakan fungsi http.HandleFunc
untuk mengikat laluan fungsi pemprosesan Tetapkan kepada laluan akar. Dalam fungsi pengendali laluan, kami mendapat alamat IP permintaan melalui r.RemoteAddr
dan mencetaknya ke konsol dan kandungan respons. Akhir sekali, kami memulakan pelayan HTTP melalui fungsi http.ListenAndServe
dan mendengar pada port 8080.
Apabila kami mengakses pelayan, konsol akan mengeluarkan maklumat yang serupa dengan yang berikut:
Request from IP address: 127.0.0.1:58226
Output di atas menunjukkan bahawa permintaan kami datang daripada klien dengan alamat IP 127.0.0.1 dan port 58226.
Walau bagaimanapun, perlu diingat bahawa Request.RemoteAddr
alamat IP yang diperolehi mungkin bukan alamat IP sebenar pelanggan, terutamanya apabila proksi terbalik digunakan. Dalam kes ini, kaedah lain harus digunakan untuk mendapatkan alamat IP sebenar pelanggan, seperti daripada pengepala permintaan tersuai.
Atas ialah kandungan terperinci golang mendapat ip permintaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!