Rumah >pembangunan bahagian belakang >tutorial php >Ungkapan biasa PHP untuk mengesahkan kesahihan alamat IP

Ungkapan biasa PHP untuk mengesahkan kesahihan alamat IP

王林
王林asal
2023-06-24 11:27:101231semak imbas

Apabila membangunkan aplikasi web, anda selalunya perlu menggunakan alamat IP. Kesahihan alamat IP adalah sangat penting kerana jika alamat IP tidak sah, ia boleh membawa kepada kelemahan keselamatan dan isu lain. Ungkapan biasa PHP ialah alat berguna yang boleh membantu kami mengesahkan kesahihan alamat IP.

Ekspresi biasa PHP ialah alat pemprosesan teks yang berkuasa yang boleh digunakan untuk memadankan dan menggantikan teks. Dalam PHP, ungkapan biasa biasanya diproses menggunakan siri preg fungsi. Untuk mengesahkan kesahihan alamat IP, kami boleh menggunakan ungkapan biasa berikut:

$pattern = '/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/';

Ungkapan biasa ini pada asasnya boleh memadankan mana-mana alamat IP yang sah. Mari jelaskan secara terperinci di bawah.

Pertama sekali, permulaan ungkapan biasa ialah "^", yang bermaksud pemadanan bermula dari permulaan rentetan. Kemudian bahagian yang dikelilingi oleh "(?:)" ialah kumpulan bukan penangkap, yang boleh dipadankan berulang kali. Seterusnya ialah "(?:25[0-5]|20-4|[01]?0-9?)." 255.

Secara khusus, bahagian ini terdiri daripada tiga bahagian, dipisahkan oleh "|":

  • "25[0-5]" mewakili nombor dari 25 hingga 255.
  • "20-4" bermaksud nombor dari 200 hingga 249 dan nombor dari 250 hingga 255.
  • "[01]?0-9?" bermaksud nombor antara 0 dan 199. Antaranya, "[01]?[0-9]" mewakili nombor dari 0 hingga 19, dan "[01]?0-9?"

Langkah seterusnya ialah ".", yang bermaksud memadankan "." dalam alamat IP.

Bahagian terakhir ialah "(?:25[0-5]|20-4|[01]?0-9?)$", bahagian ini boleh memadankan segmen terakhir alamat IP, yang mana ialah segmen keempat. Peraturannya serupa dengan peraturan sebelumnya dan tidak akan diterangkan lagi. "$" akhir bermaksud padanan dari hujung rentetan.

Perlu diambil perhatian bahawa ungkapan biasa ini hanya boleh digunakan untuk mengesahkan kesahihan alamat IPv4. Jika anda perlu mengesahkan kesahihan alamat IPv6, anda perlu menggunakan ungkapan biasa yang berbeza.

Berikut ialah contoh kod PHP lengkap untuk mengesahkan kesahihan alamat IP:

function validateIPAddress($ip) {
    $pattern = '/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/';
    if (preg_match($pattern, $ip)) {
        return true;
    } else {
        return false;
    }
}

$ip = '192.168.0.1';
if (validateIPAddress($ip)) {
    echo 'IP地址有效';
} else {
    echo 'IP地址无效';
}

Pertama mentakrifkan fungsi validateIPAddress untuk mengesahkan kesahihan alamat IP. Jika alamat IP adalah sah, mengembalikan benar; Dalam fungsi, ungkapan biasa yang dinyatakan sebelum ini digunakan untuk pemadanan.

Kemudian pembolehubah $ip ditakrifkan untuk menyimpan alamat IP. Jika alamat IP sah, "alamat IP sah" adalah output jika tidak, "alamat IP tidak sah" adalah output;

Melalui contoh ini, kita dapat melihat bahawa sangat mudah untuk menggunakan ungkapan biasa PHP untuk mengesahkan kesahihan alamat IP. Dalam aplikasi praktikal, kami juga boleh mengalih keluar atau menambah beberapa peraturan seperti yang diperlukan untuk membuat pengesahan lebih tepat.

Atas ialah kandungan terperinci Ungkapan biasa PHP untuk mengesahkan kesahihan alamat IP. 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