在php5.2之前如果我們要驗證IP地址是否有效我們需要使用正則來驗證這樣只是IP地址是不是合法的,如果要有效我們需要調用ping來操作,但php5.2.0之後,有專門的函數來做這個判斷了,下面我來總結一下這些函數
判斷是否是合法IP
判斷是否是合法的IPv4 IP地址
代碼如下 復制代碼
判斷是否是合法的公共IPv4地址,192.168.1.1這類的私有IP地址將會排除在外
代碼如下 復制代碼
判斷是否是合法的IPv6地址
代碼如下 復制代碼
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE)) {// it's valid
}else {// it's not valid
}
判斷是否是public IPv4 IP或者是合法的Public IPv6 IP地址
代碼如下 復制代碼if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {// it's valid
}else {// it's not valid
}
如果你的php版本過低可以上面的函數都無法使用但我們可以使用正則表達試來驗證
代碼如下 復制代碼//判斷IP格式
function is_ip($gonten){
$ip = explode(".",$gonten);
for($i=0;$i<count($ip);$i++)
{
if($ip[$i]>255){
return (0);
}
}
return ereg("^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$",$gonten);
}