首页> 实战笔录 >PHP开发笔记 >PHP PHP
php中判断某个IP地址是否存在范围内
作者:小萝卜 2018-03-21 【 】 浏览 1550
简介看到网上很多各式可以ip地址的范围的方法,有用正则的,还有字符串截取的。自己试了很多感觉不怎么靠谱,一是有些不舍很准确,二是太伤性能了,又复杂。然后搜了很多资料,才找到个性能比较好的简单的IP地址范围判断的方法,在这里作个笔记记录一下。
转载 http://blog.csdn.net/u010111874/article/details/51744253
看到网上很多各式可以ip地址的范围的方法,有用正则的,还有字符串截取的。自己试了很多感觉不怎么靠谱,一是有些不舍很准确,二是太伤性能了,又复杂。然后搜了很多资料,才找到个性能比较好的简单的IP地址范围判断的方法,在这里作个笔记记录一下。
IP地址库的话,纯真的不错:http://www.cz88.net/
也可以使用网上接口来使用,但是有问题。你不能频繁的去用for循环来去访问,不然会被接口屏蔽掉
淘宝IP地址库:http://ip.taobao.com/service/getIpInfo.php?ip=这里填IP地址
好了,其实真正实现判断IP地址范围很简单的,一行代码就搞定了,看如下我写的案例你就懂了:
//案例:判断192.168.1.127是否在 (192.168.1.1--192.168.1.255)的范围里面
$ip_start = get_iplong('192.168.1.1'); //起始ip
$ip_end = get_iplong('192.168.1.255');//至ip
$ip = get_iplong('192.168.1.127');//判断的ip
//可以这样简单判断
if($ip>=$ip_start && $ip <=$ip_end){
echo 'IP在此范围内';
}else{
echo 'IP不在此范围';
}
/**
* 将ip地址转换成int型
* @param $ip ip地址
* @return number 返回数值
*/
function get_iplong($ip){
//bindec(decbin(ip2long('这里填ip地址')));
//ip2long();的意思是将IP地址转换成整型 ,
//之所以要decbin和bindec一下是为了防止IP数值过大int型存储不了出现负数。
return bindec(decbin(ip2long($ip)));
}
很赞哦! (0)
下一篇:冒泡,选择,插入和快速排序法
相关文章
- php计算密码强度 ,php自定义函数计算密码强度
- PHP网页调用迅雷下载文件
- PHP中Cookie的参数,及其代表什么意思
- Redis命令报错Invalid argument during startup: unknown conf file parameter : requirepass
- php正则判断是否同时有数字和字母
- php前边填充0,php数字前补0零的两种方法
- 修改PHP上传文件大小限制的方法
- PHP常用数学函数分享
- php实现删除该目录以及该目录下面的所有文件和子文件夹
- Namespace declaration statement has to be the very first statement or after any declare call in the