php使用preg_match()函數(shù)驗證ip地址的方法
本文實例講述了php使用preg_match()函數(shù)驗證ip地址的方法。分享給大家供大家參考,具體如下:
代碼一、正則實現(xiàn)
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 匹配的正則規(guī)則
*@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");
正則的效率是在比不上原生的,所以丟個鏈接(過濾器函數(shù))走人。
過濾器的選項,比如可以過濾私有IP地址等。
用法參考Validating an IP address with PHP's filter_var function
php如何判斷IP為有效IP地址
多數(shù)人看到這篇日志,第一印象肯定是以為是要講如何通過正則表達式來判斷。
非也,在php5.2.0之后,有專門的函數(shù)來做這個判斷了。
判斷是否是合法IP
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
}
PS:這里再為大家提供2款非常方便的正則表達式工具供大家參考使用:
JavaScript正則表達式在線測試工具:
http://tools.jb51.net/regex/javascript
正則表達式在線生成工具:
http://tools.jb51.net/regex/create_reg
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php正則表達式用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計有所幫助。
- php中使用preg_match_all匹配文章中的圖片
- php preg_match_all結(jié)合str_replace替換內(nèi)容中所有img
- PHP中preg_match正則匹配中的/u、/i、/s含義
- PHP函數(shù)preg_match_all正則表達式的基本使用詳細解析
- PHP 正則表達式之正則處理函數(shù)小結(jié)(preg_match,preg_match_all,preg_replace,preg_split)
- PHP preg_match的匹配多國語言的技巧
- PHP preg match正則表達式函數(shù)的操作實例
- php中獲取指定IP的物理地址的代碼(正則表達式)
- PHP IPV6正則表達式驗證代碼
- PHP 正則表達式效率 貪婪、非貪婪與回溯分析(推薦)
- php常用正則函數(shù)實例小結(jié)
- php正則修正符用法實例詳解
相關(guān)文章
注意:php5.4刪除了session_unregister函數(shù)
在php5.4版本中,應(yīng)經(jīng)刪除了session_unregister該函數(shù)。朋友們注意一下2013-08-08
PHP正則+Snoopy抓取框架實現(xiàn)的抓取淘寶店信譽功能實例
這篇文章主要介紹了PHP正則+Snoopy抓取框架實現(xiàn)的抓取淘寶店信譽功能,結(jié)合實例形式分析了Snoopy框架的使用及正則匹配相關(guān)操作技巧,需要的朋友可以參考下2017-05-05
PHP遞歸寫入MySQL實現(xiàn)無限級分類數(shù)據(jù)操作示例
這篇文章主要介紹了PHP遞歸寫入MySQL實現(xiàn)無限級分類數(shù)據(jù)操作,涉及mysql數(shù)據(jù)庫的創(chuàng)建以及php遞歸寫入、讀取數(shù)據(jù)庫分類相關(guān)操作技巧,需要的朋友可以參考下2018-07-07

