php判断ip地址的方法/函数和正则表达式

2014年03月21日 13:35 by:老修

导读: 网上判断ip地址的方法五花八门,php自带判断ip地址的函数,filter过滤器就是干这个事情的,后跟过滤ip的参数即可:FILTER_VALIDATE_IP, 这个函数还支持IPv6过滤。

无意中看到网上有人在找判断ip地址方法的正则表达式,怎么说呢看到问这个问题我很纠结,业务不熟害死人啊。

php自带判断ip地址的函数,filter过滤器就是干这个事情的,后跟过滤ip的参数即可:FILTER_VALIDATE_IP, 这个函数还支持IPv6过滤

php判断ip函数

filter函数过滤ip地址的方法:

  1. echo filter_var("127.0.0.1","FILTER_VALIDATE_IP"); //返回true or false

不熟悉的翻手册。

如果非要跟自己过不去就用正则

正则表达式过滤ip地址(IPv4)的方法:

  1. preg_match("/\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}/");//这个方法有个毛病就是ip最大是255,如果写错999也不会出错,更精确的判断要写更多代码,比较麻烦。

再介绍一种用ip2long函数判断ip地址:

  1. if(bindec(decbin(ip2long("127.0.0.1")))){
  2.     echo "这个ip地址没问题";
  3. }

其实方法还是挺多的,但是方法不同影响程序的最终效率,还是那句话有时间看手册:http://www.w3school.com.cn/php/index.asp