Semakan Julat IP Pantas Masuk Go
In Go, dengan cekap menentukan sama ada alamat IP berada dalam julat tertentu adalah penting untuk pengurusan rangkaian dan tugas keselamatan. Artikel ini meneroka pendekatan paling pantas untuk menangani cabaran ini.
Cara yang cekap untuk menyemak sama ada alamat IP berada dalam julat tertentu ialah membandingkannya dengan titik akhir julat menggunakan bait.Bandingkan fungsi. Alamat IP diwakili sebagai hirisan []bait bigendian dalam Go, menjadikan perbandingan ini tepat.
Contoh kod di bawah menunjukkan pendekatan ini:
package main import ( "bytes" "fmt" "net" ) var ( ip1 = net.ParseIP("216.14.49.184") ip2 = net.ParseIP("216.14.49.191") ) func check(ip string) bool { trial := net.ParseIP(ip) if trial.To4() == nil { fmt.Printf("%v is not an IPv4 address\n", trial) return false } if bytes.Compare(trial, ip1) >= 0 && bytes.Compare(trial, ip2) <= 0 { fmt.Printf("%v is between %v and %v\n", trial, ip1, ip2) return true } fmt.Printf("%v is NOT between %v and %v\n", trial, ip1, ip2) return false } func main() { check("1.2.3.4") check("216.14.49.185") check("1::16") }
Kod ini menghasilkan output berikut:
1.2.3.4 is NOT between 216.14.49.184 and 216.14.49.191 216.14.49.185 is between 216.14.49.184 and 216.14.49.191 1::16 is not an IPv4 address
Ringkasnya, menggunakan bait.Bandingkan untuk membandingkan alamat IP dalam semakan julat ialah kaedah yang paling cekap dalam Go, membolehkan ketepatan dan penentuan pantas.
Atas ialah kandungan terperinci Bagaimana untuk Memeriksa dengan Cekap sama ada Alamat IP Jatuh Dalam Julat dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!