我正在为我的网站设置试用版。网站显示:
请求来自以下 IP 地址范围:70.42.249.1 - 70.42.249.255
在 PHP 中,如何检查访问我的身份验证页面的机器人/人是否在上述 IP 范围内?
答案1
由于您正在处理 IP 地址,因此将它们视为整数而不是字符串可能更容易。您可以使用ip2long()
函数来执行此操作。
这里有一个可以帮助您的功能:
function ipbetweenrange($needle, $start, $end) {
if((ip2long($needle) >= ip2long($start)) && (ip2long($needle) <= ip2long($end))) {
return true;
}
return false;
}
$ipstart = '70.42.249.1';
$ipend = '70.42.249.255';
echo ipbetweenrange('70.42.249.1', $ipstart, $ipend); // true
echo ipbetweenrange('70.42.249.255', $ipstart, $ipend); // true
echo ipbetweenrange('70.42.249.128', $ipstart, $ipend); // true
echo ipbetweenrange('192.168.0.1', $ipstart, $ipend); // false
答案2
foreach( range( 1, 255 ) as $number )
{
if( $userIp == '70.42.249.' . $number )
// we have a match, do whatever you want
}
类似这样的内容。是的,这可能应该移至 Stackoverflow。