我正在使用浏览时遇到的这个 IP 验证功能,它一直运行良好,直到今天我遇到了问题。
出于某种原因,该函数不会将此 IP 验证为有效:203.81.192.26
我不太擅长正则表达式,所以如果能提供任何可能出错的帮助,我将不胜感激。
如果您有其他功能,请将其发布给我,我将不胜感激。
函数代码如下:
public static function validateIpAddress($ip_addr)
{
global $errors;
$preg = '#^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}' .
'(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$#';
if(preg_match($preg, $ip_addr))
{
//now all the intger values are separated
$parts = explode(".", $ip_addr);
//now we need to check each part can range from 0-255
foreach($parts as $ip_parts)
{
if(intval($ip_parts) > 255 || intval($ip_parts) < 0)
{
$errors[] = "ip address is not valid.";
return false;
}
return true;
}
return true;
} else {
$errors[] = "please double check the ip address.";
return false;
}
}
最佳答案
我更喜欢描述 here 的简单方法.出于安全目的,这应该被认为是有效的。尽管确保从 $_SERVER['REMOTE_ADDR']
获取它,但任何其他 http header 都可以被欺骗。
function validateIpAddress($ip){
return long2ip(ip2long($ip)))==$ip;
}
关于php - IP 地址验证帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3039524/