Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Memeriksa dengan Cekap sama ada Alamat IP berada dalam Julat dalam Go?
Menyemak Alamat IP dalam Julat Secara Cekap dalam Go
Menentukan sama ada alamat IP berada dalam julat tertentu ialah keperluan biasa dalam pelbagai rangkaian operasi. Dalam Go, terdapat beberapa pendekatan untuk menangani tugasan ini.
Kaedah Terpantas: bait.Bandingkan
Salah satu kaedah yang paling berkesan ialah menggunakan bait.Bandingkan fungsi untuk membandingkan perwakilan bait alamat IP.
import ( "bytes" "net" ) // Check if an IP address is within a range func check(trial, start, end net.IP) bool { if start.To4() == nil || end.To4() == nil || trial.To4() == nil { return false } return bytes.Compare(trial, start) >= 0 && bytes.Compare(trial, end) <= 0 }
Dalam pendekatan ini, kami mula-mula menyemak sama ada alamat IP yang diberikan adalah alamat IPv4 yang sah. Kami kemudian menggunakan bait.Bandingkan untuk membandingkan perwakilan bait IP percubaan dan titik mula dan akhir julat. Jika perbandingan menghasilkan nilai bukan negatif untuk kedua-dua semakan, ini menandakan bahawa alamat IP berada dalam julat.
Contoh Penggunaan
Kod berikut menunjukkan penggunaan bait.Bandingkan kaedah:
import ( "fmt" "net" ) var ( ip1 = net.ParseIP("216.14.49.184") ip2 = net.ParseIP("216.14.49.191") ) func main() { check := func(ip string) { trial := net.ParseIP(ip) res := check(trial, ip1, ip2) fmt.Printf("%v is %v within range %v to %v\n", trial, res, ip1, ip2) } check("1.2.3.4") check("216.14.49.185") check("216.14.49.191") }
Output:
1.2.3.4 is false within range 216.14.49.184 to 216.14.49.191 216.14.49.185 is true within range 216.14.49.184 to 216.14.49.191 216.14.49.191 is true within range 216.14.49.184 to 216.14.49.191
Atas ialah kandungan terperinci Bagaimana untuk Memeriksa dengan Cekap sama ada Alamat IP berada dalam Julat dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!