在一些查询网站和搜索引擎,常常用到判断某字符串是否为标准的IP地址,比如在百度里搜索某IP地址,会显示该IP的信息,而不符合标准的IP地址是不显示IP信息的。这时就要判断该字符串是否为标准的IP了,最常用的方法是用正则表达式判断。
在网上搜了一些判断IP地址的正则,都是过于简单的,有的只是判断IP字段不大于255,其实还有很多需要判断的,比如只能是数字,且不能为负数,还有用“.”分割只有4段等等。
最好我整理了一个自我感觉完美的函数,PHP判断字符串是否为IP的代码如下:
<ol class="dp-xml"> <li class="alt"><span><span>function is_ip($gonten){ </span></span></li> <li> <span>$</span><span class="attribute">ip</span><span> = </span><span class="attribute-value">explode</span><span>(”.”,$gonten); </span> </li> <li class="alt"> <span>for($</span><span class="attribute">i</span><span>=</span><span class="attribute-value">0</span><span>;$i</span><span class="tag"><span class="tag-name">count</span><span>($ip);$i++) </span></span> </li> <li><span>{ </span></li> <li class="alt"> <span>if($ip[$i]</span><span class="tag">></span><span>255){ </span> </li> <li><span>return (0); </span></li> <li class="alt"><span>} </span></li> <li><span>} </span></li> <li class="alt"><span>return ereg(”^[0-9]{1,3}.<br>[0-9]{1,3}.[0-9]{1,3}.[0-9]<br>{1,3}$”,$gonten); </span></li> <li><span>} </span></li> </ol>
$gonten为要查询的字符串,用is_ip($gonten)就可以实现PHP判断字符串是否为IP,返回FALSE和TRUE。