Php IP范围if语句

时间:2016-05-20 12:29:47

标签: php if-statement ip

我想在php中检查一个I.P地址是否出现在指定的范围内,如果它确实显示了webform,如果不是false则不执行任何操作。

这是我在想的例子:

<?php 
function in_ip_range($ip_one, $ip_two=false){ 
    if($ip_two===false){ 
        if($ip_one==$_SERVER['REMOTE_ADDR']){ 
            $ip=true; 
        }else{ 
            $ip=false; 
        } 
    }else{ 
        if(ip2long($ip_one)<=ip2long($_SERVER['REMOTE_ADDR']) && ip2long($ip_two)>=ip2long($_SERVER['REMOTE_ADDR'])){ 
            $ip=true; 
        }else{ 
            $ip=false; 
        } 
    } 
    return $ip; 
} 
//usage 
echo in_ip_range('192.168.0.0','192.168.1.254'); 
?>

由于

1 个答案:

答案 0 :(得分:0)

$ip = $_SERVER['REMOTE_ADDR'];
if(preg_match("/192\.168\.[0|1]\.\d+/", $ip)){
     echo "form";
}else{
     echo "no form";
}

我现在看到你不想允许...... 255?正确吗?
在这种情况下,你需要这个正则表达式:
"/192\.168\.[0|1]\.([0|1][0-9][0-9]|[2][0-4][0-9]|25[0-4])/"