這篇文章主要介紹了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之後,有專門的函數來做這個判斷了。
if(filter_var($ip, FILTER_VALIDATE_IP)) { // it's valid } else { // it's not valid }
#判斷是否是合法的IPv4 IP位址
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { // it's valid } else { // it'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's valid } else { // it's not valid }
#判斷是否是合法的IPv6位址
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE)) { // it's valid } else { // it'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's valid } else { // it's not valid }
以上就是本文的全部內容,希望對大家的學習有幫助。
相關推薦:
match符合字串長度步驟詳解
##########PHP preg_###match###實作正規表示式匹配功能的方法############################以上是php使用preg_match()函數實作驗證ip位址的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!