Hướng dẫn php validate ip address regex - php xác thực địa chỉ ip regex

Đừng sử dụng regex khi bạn không cần phải :)

$valid = filter_var($string, FILTER_VALIDATE_IP);

Mặc dù nếu bạn thực sự muốn một regex ...

$valid = preg_match('/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\z/', $string);

Tuy nhiên, Regex sẽ chỉ xác nhận định dạng, tối đa cho bất kỳ octet nào là tối đa cho một byte không dấu hoặc 255.

Đây là lý do tại sao IPv6 là cần thiết - một địa chỉ IPv4 chỉ dài 32 tỷ và internet phổ biến :)

Các biểu thức chính quy bên dưới có thể được sử dụng để xác thực nếu một chuỗi là định dạng địa chỉ IP hợp lệ và để trích xuất địa chỉ IP từ một chuỗi. Xin lưu ý rằng xác thực này không thể biết nếu một địa chỉ IP thực sự tồn tại.

IPv4 (192.168.0.1) Regex

Một biểu thức chính quy đơn giản để xác thực chuỗi theo định dạng IPv4 hợp lệ:

"/^(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/"

Kiểm tra nó!

Hoặc ] | 2 [0-4] [0-9] | [01]? [0-9] [0-9]?) \. (?: 25 [0-5] | 2 [0-4] [0 -9] | [01]? [0-9] [0-9]?) \. (?: 25 [0-5] | 2 [0-4] [0-9] | [01]? [0 -9] [0-9]?) $/

ĐÚNG VẬY

Sai

Nhập một văn bản vào đầu vào ở trên để xem kết quả

Mã ví dụ trong PHP:

// Validate ipv4 address
$ipv4_validation_regex = "/^(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/"; 
echo preg_match($ipv4_validation_regex, '192.168.0.1'); // returns 1

// Extract ipv4 from a string
$extract_ipv4_pattern = "/(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/";
$string_to_match = 'My server IP addresses are 192.168.0.1 and 192.168.0.2';
preg_match_all($extract_ipv4_pattern, $string_to_match, $matches);
print_r($matches[0])// matches[0] is ['192.168.0.1', '192.168.0.2']

IPv6 regex

Biểu thức chính quy IPv6 có thể được sử dụng để khớp chuỗi IPv6 hoặc để trích xuất IPv6 từ một chuỗi đã cho:

"/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/"

Kiểm tra nó!

Hoặc ] | 2 [0-4] [0-9] | [01]? [0-9] [0-9]?) \. (?: 25 [0-5] | 2 [0-4] [0 -9] | [01]? [0-9] [0-9]?) \. (?: 25 [0-5] | 2 [0-4] [0-9] | [01]? [0 -9] [0-9]?) $/

ĐÚNG VẬY

Sai

Nhập một văn bản vào đầu vào ở trên để xem kết quả

Mã ví dụ trong PHP:

// Validate IPv6 address
$ipv6_validation_regex = "/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/"; 
echo preg_match($ipv6_validation_regex, '1:2:3:4:5:6:7:8'); // returns 1

Kiểm tra nó!

ĐÚNG VẬY

Sai

Nhập một văn bản vào đầu vào ở trên để xem kết quả

Mã ví dụ trong PHP:

IPv6 regex

Làm thế nào xác thực IP trong PHP?

Bộ lọc Filter_Validate_IP xác thực địa chỉ IP.Các cờ có thể có: Filter_flag_ipv4 - Giá trị phải là địa chỉ IPv4 hợp lệ.Filter_flag_ipv6 - Giá trị phải là địa chỉ IPv6 hợp lệ.FILTER_VALIDATE_IP filter validates an IP address. Possible flags: FILTER_FLAG_IPV4 - The value must be a valid IPv4 address. FILTER_FLAG_IPV6 - The value must be a valid IPv6 address.

Regex cho địa chỉ IP là gì?

// Đây là Regex để xác nhận địa chỉ IP.= Zeroto255 + "\\." + Zeroto255 + "\\."= zeroTo255 + "\\." + zeroTo255 + "\\."