php判断ip是否属于某个区段
墨初 编程开发 656阅读
在处理大量的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