Hàm kiểm tra xem địa chỉ IP hợp lệ trong php

Thảo luận trong 'Ngôn ngữ lập trình web PHP' bắt đầu bởi phamcongson, 11/3/16.

  1. phamcongson

    phamcongson

    Police

    Tham gia ngày:
    3/6/13
    Bài viết:
    481
    Đã được thích:
    97
    Điểm thành tích:
    28
    Giới tính:
    Nam
    Hàm kiểm tra xem địa chỉ IP version 4 (TCP/IPv4) và version 6 (TCP/IPv6) có hợp lệ hay không trong php
    • Để kiểm tra 1 địa chỉ ip truyền vào xem địa chỉ đó có phải là địa chỉ ip hay không bạn dùng ham sau:
    Mã:
    filter_var('Địa_chi_IPv4',FILTER_VALIDATE_IP,FILTER_FLAG_IPV4);
    
    Mã:
    filter_var('Địa_chi_IPv6',FILTER_VALIDATE_IP,FILTER_FLAG_IPV6);
    
    • Hàm trả về giá trị TRUE(đúng là địa chỉ ip) hoặc FALSE(Sai không phải địa chỉ ip)
    Ví Dụ:
    PHP:
    //Để kiểm tra nhanh xem địa chỉ ip vừa nhập có phải là địa chỉ ip v4 hay v6 hay không thì dùng lệnh
    $ip="212h.121.dkdsj.9832";
    if(
    filter_var($ip,FILTER_VALIDATE_IP))
    {
      echo 
    "Là IP hợp lệ";
    }
    else
    {
      echo 
    "Không phải là IP";
    }
    //Kết quả: Không phải là IP

    $nivp4='192.168.1.1'// IPv4 nội bộ nằm trong khoảng 192.168.1.1 -> 192.168.1.225
    $ipv4='123.12.23.34'//IPv4 Public

    //Kiểm tra địa chỉ ip nhập vào có phải là địa chỉ IPv4 hay không?
    if(filter_var($nipv4,FILTER_VALIDATE_IP,FILTER_FLAG_IPV4))
    {
      echo 
    'Địa chỉ ip vừa nhập là IPv4';
    }
    else
    {
      echo 
    'Địa chỉ ip vừa nhập không phải là IPv4';
    }
    //Kết quả: Địa chỉ ip vừa nhập là IPv4 và là địa chỉ ip nội bộ

    //Kiểm tra địa chỉ ip nhập vào có phải là ip nội bộ hay không?
    if(filter_var($ipv4,FILTER_VALIDATE_IP,FILTER_FLAG_IPV4 FILTER_FLAG_NO_PRIV_RANGE))
    {
      echo 
    "Không phải là địa chỉ ip nội bộ";
    }
    else
    {
      echo 
    "Là địa chỉ ip nội bộ";
    }
    //Kết quả: Không phải là địa chỉ ip nội bộ vì ip nội bộ nằm trong khoảng 192.168.1.1 -> 192.168.1.225 còn ip nhập là 123.12.23.34

    //Kiểm tra ip nhập vào có phải là ip IPv6 hay không?
    $ipv6="2222:0FC7::2005:4F33:0ABD:FAFA";  // Trong ipv6 :: thay thế cho 4 số 0 liên tiếp VD: 0:0:0:0
    if(filter_var($ipv6,FILTER_VALIDATE_IP,FILTER_FLAG_IPV6))
    {
      echo 
    "Là địa chỉ ipv6";
    }
    else
    {
      echo 
    "Không là địa chỉ ipv6";
    }
    // Kết quả: Là địa chỉ ipv6
    Ngoài ra các bạn có thể xem thêm về hàm này tại URL dưới
    Mã:
    http://php.net/manual/en/filter.filters.validate.php
     
    Cảm ơn đã xem bài:

    Hàm kiểm tra xem địa chỉ IP hợp lệ trong php

    Đang tải...
  2. mitsuvietnam

    mitsuvietnam Thành Viên Mới

    Tham gia ngày:
    1/8/16
    Bài viết:
    6
    Đã được thích:
    0
    Điểm thành tích:
    1
    Cảm ơn đã chia sẻ!Bài viết rất bổ ích
     


Like và Share ủng hộ ITSEOVN