首頁  >  文章  >  後端開發  >  php使用preg_match()函數實作驗證ip位址的方法

php使用preg_match()函數實作驗證ip位址的方法

墨辰丷
墨辰丷原創
2018-05-26 16:36:091974瀏覽

這篇文章主要介紹了php使用preg_match()函數驗證ip位址的方法,涉及php針對數字及字串的正則匹配操作相關技巧,需要的朋友可以參考下

本文實例講述了php使用preg_match()函數驗證ip位址的方法。分享給大家供大家參考,具體如下:

代碼一、正規實作

#
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);

程式碼二、

##

<?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");

正規的效率是在比不上原生的,所以丟個連結(過濾器函數)走人。

過濾器的選項,例如可以過濾私有IP位址等。

用法參考Validating an IP address with PHP's filter_var function

php如何判斷IP為有效IP位址

##多數人看到這篇日誌,第一印象肯定是以為是要講如何用正規表示式來判斷。

非也,在php5.2.0之後,有專門的函數來做這個判斷了。

判斷是否是合法IP

if(filter_var($ip, FILTER_VALIDATE_IP)) {
// it&#39;s valid
}
else {
// it&#39;s not valid
}


#判斷是否是合法的IPv4 IP位址

if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {
// it&#39;s valid
}
else {
// it&#39;s not valid
}

判斷是否為合法的公有IPv4位址,192.168.1.1這類的私有IP位址將會排除在外

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
}

#判斷是否是合法的IPv6位址


if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE)) {
// it&#39;s valid
}
else {
// it&#39;s not valid
}

#判斷是否是public IPv4 IP或是合法的Public IPv6 IP位址#

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
}

以上就是本文的全部內容,希望對大家的學習有幫助。
相關推薦:

php preg_match符合字串長度案例解析

PHP preg_

match符合字串長度步驟詳解

##########PHP preg_###match###實作正規表示式匹配功能的方法############################

以上是php使用preg_match()函數實作驗證ip位址的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn