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)文章
php+html優(yōu)化頁面顯示速度的方法小結(jié)
這篇文章主要為大家詳細介紹了php結(jié)合html優(yōu)化頁面顯示速度的一些常見方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2023-12-12php判斷文件上傳類型及過濾不安全數(shù)據(jù)的方法
這篇文章主要介紹了php判斷文件上傳類型及過濾不安全數(shù)據(jù)的方法,可實現(xiàn)對$_COOKIE、$_POST、$_GET中不安全字符的過濾功能,非常具有實用價值,需要的朋友可以參考下2014-12-12PHP的壓縮函數(shù)實現(xiàn):gzencode、gzdeflate和gzcompress的區(qū)別
這篇文章主要介紹了PHP的壓縮函數(shù)實現(xiàn):gzencode、gzdeflate和gzcompress的區(qū)別,需要的朋友可以參考下2016-01-01PHP實現(xiàn)上傳文件并存進數(shù)據(jù)庫的方法
這篇文章主要介紹了PHP實現(xiàn)上傳文件并存進數(shù)據(jù)庫的方法,涉及php文件上傳所涉及的文件與表單操作及數(shù)據(jù)庫操作相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下2015-07-07PHP使用PDO操作數(shù)據(jù)庫的亂碼問題解決方法
這篇文章主要介紹了PHP使用PDO操作數(shù)據(jù)庫的亂碼問題解決方法,實例分析了編碼設(shè)置及屬性設(shè)置解決亂碼問題的實現(xiàn)技巧,需要的朋友可以參考下2016-04-04