Maison  >  Article  >  développement back-end  >  PHP utilise la fonction preg_match() pour implémenter la méthode de vérification de l'adresse IP

PHP utilise la fonction preg_match() pour implémenter la méthode de vérification de l'adresse IP

墨辰丷
墨辰丷original
2018-05-26 16:36:092008parcourir

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&#39;s valid
}
else {
// it&#39;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&#39;s valid
}
else {
// it&#39;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&#39;s valid
}
else {
// it&#39;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&#39;s valid
}
else {
// it&#39;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&#39;s valid
}
else {
// it&#39;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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn