在一些查询网站和搜索引擎,常常用到判断某字符串是否为标准的IP地址,比如在百度里搜索某IP地址,会显示该IP的信息,而不符合标准的IP地址是不显示IP信息的。这时就要判断该字符串是否为标准的IP了,最常用的方法是用正则表达式判断。
在网上搜了一些判断IP地址的正则,都是过于简单的,有的只是判断IP字段不大于255,其实还有很多需要判断的,比如只能是数字,且不能为负数,还有用“.”分割只有4段等等。
最后我整理了一个自我感觉完美的函数,代码如下:
function is_ip($gonten){
$ip = explode(“.”,$gonten);
for($i=0;$i<count($ip);$i++)
{
if($ip[$i]>255){
return (0);
}
}
return ereg(“^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$”,$gonten);
}
$gonten为要查询的字符串,用is_ip($gonten)就可以判断了,返回FALSE和TRUE。
本文地址:http://www.gonten.com/php-ip-check/ 转载请务必以超链接形式注明!
6 条评论我要评论 »
1 - colin | 2009-11-12 at 00:17
还有几类,比如A类,B类,这个函数还可以深化,不错,努力
。也不知道Google Wave有没有邀请权限,到时发给我一个
[回复]
@colin, 呵呵,我是初学者,摸索中,还没有Google wave的邀请权限,有了就发给你
[回复]
2 - IP判断分享 | 2009-11-12 at 00:58
http://bit.ly/uHDpZ 非正则表达式匹配字符串为IP
[回复]
@IP判断分享, 哥们,似乎打不开呀
[回复]
3 - 小农夫 | 2009-11-12 at 09:02
PHP如果不难学,小农夫也准备花点时间在上面。可就是难学精呀
[回复]
4 - 大懒汉 | 2009-11-14 at 21:42
@_@ 呵呵 我又WAVE了~
[回复]