Artikel ini menyelidiki jenis net/netip
pakej Prefix
, alat yang berkuasa untuk mewakili rangkaian IP dalam tatatanda CIDR. Kami akan meneroka fungsinya, memfokuskan pada aplikasi praktikal dan amalan terbaik.
Pemahaman Prefix
Jenis Prefix
memudahkan kerja dengan julat alamat IP menggunakan tatatanda CIDR. Contohnya termasuk:
192.168.1.0/24
: Mewakili 256 alamat IPv4 (192.168.1.0 hingga 192.168.1.255).2001:db8::/32
: Mewakili rangkaian IPv6 yang besar.Mencipta dan Menghuraikan Awalan
Penciptaan dan penghuraian awalan asas:
<code class="language-go">package main import ( "fmt" "net/netip" ) func main() { // Parse from CIDR string prefix, err := netip.ParsePrefix("192.168.1.0/24") if err != nil { panic(err) } // Create from Addr and bits addr := netip.MustParseAddr("192.168.1.0") prefix2 := netip.PrefixFrom(addr, 24) fmt.Printf("From string: %v\nFrom components: %v\n", prefix, prefix2) }</code>
Peraturan pengesahan utama dikenakan:
Meneroka Prefix
Kaedah
Mari kita periksa kaedah Prefix
penting.
Sifat Asas:
<code class="language-go">func explorePrefix(p netip.Prefix) { // Get the network address addr := p.Addr() fmt.Printf("Network address: %v\n", addr) // Get the prefix length (bits) bits := p.Bits() fmt.Printf("Prefix length: %d\n", bits) // Check if it's IPv4 or IPv6 fmt.Printf("Is IPv4: %v\n", p.Addr().Is4()) fmt.Printf("Is IPv6: %v\n", p.Addr().Is6()) // Check if it represents a single IP fmt.Printf("Is single IP: %v\n", p.IsSingleIP()) }</code>
Operasi Rangkaian: Pemeriksaan pembendungan dan pertindihan adalah penting:
<code class="language-go">func networkOperations() { network := netip.MustParsePrefix("192.168.1.0/24") // Check if an IP is in the network ip := netip.MustParseAddr("192.168.1.100") fmt.Printf("Contains IP? %v\n", network.Contains(ip)) // Check if a smaller network is contained subnet := netip.MustParsePrefix("192.168.1.0/25") fmt.Printf("Contains subnet? %v\n", network.Contains(subnet.Addr())) // Check if networks overlap other := netip.MustParsePrefix("192.168.1.128/25") fmt.Printf("Overlaps? %v\n", network.Overlaps(other)) }</code>
Aplikasi Dunia Sebenar
Jom lihat Prefix
beraksi.
1. Sistem Pengurusan Alamat IP (IPAM):
<code class="language-go">// ... (IPAM struct and methods omitted for brevity, refer to original article) ...</code>
2. Kalkulator Subnet:
<code class="language-go">// ... (SubnetInfo struct and AnalyzeSubnet function omitted for brevity, refer to original article) ...</code>
3. Pengurus Peraturan Firewall:
<code class="language-go">// ... (Action, Rule, Firewall structs and methods omitted for brevity, refer to original article) ...</code>
Operasi Lanjutan: Pembahagian subnet dan pengagregatan rangkaian diliputi dalam artikel asal.
Amalan Terbaik
Contains()
untuk Keahlian: Gunakan kaedah Contains()
untuk semakan keahlian rangkaian yang cekap.Jenis net/netip
pakej Prefix
memudahkan operasi rangkaian yang kompleks dengan ketara. Dengan memahami keupayaannya dan mengikut amalan terbaik, anda boleh membina aplikasi berkaitan rangkaian yang mantap dan cekap.
Atas ialah kandungan terperinci Menguasai Operasi Awalan (CIDR) di Net/NetIP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!