Cet article présente principalement comment PHP utilise la fonction preg_match() pour vérifier l'adresse IP, impliquant les opérations de correspondance régulières de PHP pour les nombres et les chaînes. Les amis dans le besoin peuvent se référer à ce qui suit
Cet article explique les exemples. Voici comment PHP utilise la fonction preg_match() pour vérifier l'adresse IP. Partagez-le avec tout le monde pour votre référence, comme suit :
Code 1, mise en œuvre régulière
preg_match('/^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$/', $ipAddress);
Code 2,
<?php /* *@return Boolen *@param String $ip 要匹配的ip地址 *@param String $pat 匹配的正则规则 *@param Boolen 匹配成功后返回的布尔值 *preg_match() *0为不成功,1为成功 */ function fun($ip){ //0.0.0.0--- 255.255.255.255 $pat = "/^(((1?\d{1,2})|(2[0-4]\d)|(25[0-5]))\.){3}((1?\d{1,2})|(2[0-4]\d)|(25[0-5]))$/"; if(preg_match($pat,$ip)){ $num = preg_match($pat,$ip); return $num; }else{ $num = preg_match($pat,$ip); return $num; } } echo fun("255.255.255.255");
L'efficacité du régulier n'est pas aussi bonne que celle du natif, alors jetez simplement le lien (fonction de filtre) et partez.
Options de filtrage, telles que les adresses IP privées, etc.
Référence d'utilisation Valider une adresse IP avec la fonction filter_var de PHP
Comment php détermine-t-il si une adresse IP est une adresse IP valide ?
La plupart des gens ont vu ce journal, la première impression doit être qu'il s'agit de savoir comment juger à travers des expressions régulières.
Non, après php5.2.0, il existe une fonction spéciale pour porter ce jugement.
Juger s'il s'agit d'une adresse IP légale
if(filter_var($ip, FILTER_VALIDATE_IP)) { // it's valid } else { // it's not valid }
Juger s'il s'agit d'une adresse IP IPv4 légale
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { // it's valid } else { // it's not valid }
Déterminez s'il s'agit d'une adresse IPv4 publique légale. Les adresses IP privées telles que 192.168.1.1 seront exclues
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE)) { // it's valid } else { // it's not valid }
Déterminez s'il s'agit d'une adresse IPv6 légale
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE)) { // it's valid } else { // it's not valid }
Déterminez s'il s'agit d'une adresse IP IPv4 publique ou une adresse IP IPv6 publique légale
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) { // it's valid } else { // it's not valid }
Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.
Recommandations associées :
php preg_matchAnalyse de cas de longueur de chaîne de correspondance
PHP preg_matchExplication détaillée des étapes pour faire correspondre la longueur de la chaîne
PHP preg_matchimplémentation de expressions régulières Méthodes de correspondance des fonctions
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!