IPv6 merujuk kepada Internet Protocol Version 6, protokol alamat IP yang digunakan untuk komunikasi Internet. Alamat IPv6 ialah nombor yang terdiri daripada 128 bit, biasanya diwakili oleh lapan kumpulan nombor heksadesimal. Dalam PHP, anda boleh menggunakan ungkapan biasa untuk mengesahkan sama ada input ialah alamat IPv6 Berikut ialah cara menggunakan ungkapan biasa PHP untuk mengesahkan alamat IPv6.
Langkah 1: Fahami format alamat IPv6
Alamat IPv6 terdiri daripada 8 blok heksadesimal, setiap blok dipisahkan oleh titik bertindih (:). Setiap bongkah heksadesimal mestilah 4 digit perenambelasan. Berikut ialah beberapa contoh alamat IPv6:
2001:0db8:85a3:0000:0000:8a2e:0370:7334
fe80::1
::1
Dalam alamat IPv6, terdapat beberapa peraturan khas:
Langkah 2: Tulis ungkapan biasa PHP
Dalam PHP, anda boleh menggunakan fungsi preg_match untuk melakukan padanan ungkapan biasa. Berikut ialah contoh regex PHP untuk mengesahkan bahawa input ialah alamat IPv6:
function is_ipv6_address($address) {
return preg_match('/^(
(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4})| # 1: full IPv6 address (([0-9a-fA-F]{1,4}:){1,7}:) # 2: compressed IPv6 address with leading zeros (:([0-9a-fA-F]{1,4}:){1,6}) # 3: compressed IPv6 address with intermediate zeros (([0-9a-fA-F]{1,4}:){1,5}:) # 4: compressed IPv6 address with leading and intermediate zeros ((:[0-9a-fA-F]{1,4}){1,5}:) # 5: compressed IPv6 address with trailing zeros ((:[0-9a-fA-F]{1,4}){1,4}:) # 6: compressed IPv6 address with leading, intermediate and trailing zeros ((:[0-9a-fA-F]{1,4}){1,3}:) # 7: compressed IPv6 address with leading, intermediate and trailing zeros ((:[0-9a-fA-F]{1,4}){1,2}:) # 8: compressed IPv6 address with leading, intermediate and trailing zeros ((:[0-9a-fA-F]{1,4}){1,1}:) # 9: compressed IPv6 address with leading, intermediate and trailing zeros )$/i', $address);
}
Bahagian utama regex ialah Ungkapan biasa untuk pemadanan pelbagai bahagian alamat IPv6. Ia termasuk 9 ungkapan biasa berikut:
Langkah 3: Gunakan kod PHP untuk mengesahkan alamat IPv6
. menulis Selepas melengkapkan ungkapan biasa di atas, anda boleh menggunakan kod PHP berikut untuk mengesahkan sama ada input ialah alamat IPv6: $address = "2001:0db8:85a3:0000:0000:8a2e:0370:7334"; (is_ipv6_address($address )) {
echo "Input ialah alamat IPv6";
} yang lain {
echo "Input bukan alamat IPv6";
}
Atas ialah kandungan terperinci Bagaimana untuk mengesahkan sama ada input ialah alamat IPv6 menggunakan regex PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!