Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengesahkan sama ada rentetan input berada dalam format alamat IPv4 menggunakan ungkapan biasa PHP

Bagaimana untuk mengesahkan sama ada rentetan input berada dalam format alamat IPv4 menggunakan ungkapan biasa PHP

WBOY
WBOYasal
2023-06-24 16:26:221228semak imbas

Cara menggunakan ungkapan biasa PHP untuk mengesahkan sama ada rentetan input berada dalam format alamat IPv4

Di Internet, alamat IP adalah syarat yang diperlukan untuk berkomunikasi antara satu sama lain, kerana format alamat IP yang paling biasa digunakan kini digunakan oleh kebanyakan peranti. Dalam PHP, kita boleh menggunakan ungkapan biasa untuk mengesahkan sama ada rentetan input ialah alamat IP dalam format IPv4. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa PHP untuk mengesahkan sama ada rentetan input berada dalam format alamat IPv4.

Format Alamat IPv4

Alamat IPv4 ialah nombor perduaan 32-bit, biasanya ditulis sebagai empat digit perpuluhan, dengan setiap nombor dipisahkan oleh titik, seperti 192.168.1.1. Dalam format alamat IPv4, setiap nombor ialah nombor perpuluhan antara 0 dan 255, dan alamat IPv4 tidak boleh mengandungi sebarang aksara atau tanda baca lain.

Sahkan ungkapan biasa PHP untuk alamat IPv4

Dalam PHP, kita boleh menggunakan fungsi preg_match untuk mengesahkan sama ada rentetan sepadan dengan ungkapan biasa tertentu. Berikut ialah ungkapan biasa PHP untuk mengesahkan alamat IPv4:

$ipv4_regex = "/^([01]?[0-9]{1,2}|2[0-4][0-9]|25[0-5]).([01]?[0-9]{1,2}|2[0-4][0-9]|25[0-5]).([01]?[0-9]{1,2}|2[0-4][0-9]|25[0-5]).([01]?[0-9]{1,2}|2[0-4][0-9]|25[0-5])$/";

Ungkapan biasa ini mengandungi empat subungkapan, setiap satu digunakan untuk memadankan empat digit perpuluhan, dan setiap subungkapan mempunyai tiga bahagian berikut:

  1. [01]?[ 0-9]{1,2}: Memadankan nombor antara 0 dan 99, membenarkan nombor bermula dengan 0.
  2. [01]?[0-9]{1,2}:匹配0到99之间的数字,允许数字以0开头。
  3. 2[0-4][0-9]:匹配200到249之间的数字。
  4. 25[0-5]:匹配250到255之间的数字。

使用以上正则表达式可以匹配符合IPv4地址格式的IP地址字符串。

IP地址验证的PHP代码实现

下面是一个完整的PHP例子,用于检查一个输入字符串是否符合IPv4地址格式:

function validate_ipv4_address($ipv4_string) {
  $ipv4_regex = "/^([01]?[0-9]{1,2}|2[0-4][0-9]|25[0-5]).([01]?[0-9]{1,2}|2[0-4][0-9]|25[0-5]).([01]?[0-9]{1,2}|2[0-4][0-9]|25[0-5]).([01]?[0-9]{1,2}|2[0-4][0-9]|25[0-5])$/";
  return preg_match($ipv4_regex, $ipv4_string);
}

// Example usage:
$valid_ipv4_address = "192.168.1.1";
$invalid_ipv4_address = "192.168.1.333";

if(validate_ipv4_address($valid_ipv4_address)) {
  echo "$valid_ipv4_address is a valid IPv4 address";
} else {
  echo "$valid_ipv4_address is not a valid IPv4 address";
}

if(validate_ipv4_address($invalid_ipv4_address)) {
  echo "$invalid_ipv4_address is a valid IPv4 address";
} else {
  echo "$invalid_ipv4_address is not a valid IPv4 address";
}

当输入一个符合IPv4地址格式的字符串时,validate_ipv4_address函数将返回1,否则将返回02[0-4][0-9]: Memadankan nombor antara 200 dan 249.

25[0-5]: Memadankan nombor antara 250 dan 255.

Gunakan ungkapan biasa di atas untuk memadankan rentetan alamat IP yang mematuhi format alamat IPv4.

Pengesahan alamat IP Pelaksanaan kod PHP

🎜Berikut ialah contoh PHP lengkap untuk menyemak sama ada rentetan input mematuhi format alamat IPv4: 🎜rrreee🎜Apabila memasukkan rentetan yang mematuhi format alamat IPv4, validate_ipv4_address Fungsi akan mengembalikan 1, jika tidak, ia akan mengembalikan 0. Dalam contoh di atas, pernyataan output pertama akan mengeluarkan "192.168.1.1 ialah alamat IPv4 yang sah", manakala pernyataan output kedua akan mengeluarkan "192.168.1.333 bukan alamat IPv4 yang sah". 🎜🎜Kesimpulan🎜🎜Dengan menggunakan ungkapan biasa PHP, kami boleh mengesahkan dengan mudah sama ada rentetan input berada dalam format alamat IPv4. Contoh di atas boleh digunakan sebagai rujukan anda untuk menggunakan ungkapan biasa PHP dalam aplikasi yang perlu mengesahkan alamat IPv4. 🎜

Atas ialah kandungan terperinci Bagaimana untuk mengesahkan sama ada rentetan input berada dalam format alamat IPv4 menggunakan ungkapan biasa PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn