php判断ip是否属于某个区段
墨初 编程开发 1237阅读
在处理大量的IP地址时可能会涉及到IP区段,需要判断一个ip地址是否属于某个ip段可以使用下面的方法。
php判断ip是否属于某个区段
下面是一个关于php判断一个IP地址是否在某个IP段的方法,并调用了几个php内置的函数。
ip2long():将IPv4地址转换成整型
bindec():函数把二进制转换为十进制。
decbin():函数把十进制转换为二进制
/**
* @name IP地址转为十进制整数
* @param $ip IPV4 类型的IP地址
*
* @return string 返回IP地址的十进制格式
* @host https://www.73so.com
*/
function get_iplong($ip)
{
return bindec(decbin(ip2long($ip)));
}
/**
* @name 判断某个IP是否在指定ip区段中
* @param $ip_start IP段的起启位置
* @param $ip_end IP段的结束位置
* @param $ip 需要判断的IP地址
*
* @return bool true 在IP区段内 false 不在IP区段内
* @host https://www.73so.com
*/
function ipisips($ip_start,$ip_end,$ip)
{
$ip_start = get_iplong($ip_start); //最后的IP
$ip_end = get_iplong($ip_end); //判断的ip
$ip = get_iplong($ip); //需要判断的IP地址
if($ip >= $ip_start && $ip <= $ip_end){
return true;
}
return false;
}
var_dump(ipisips('110.249.202.1','110.249.202.254','110.249.202.103'));
// true