網頁

2013年11月25日

[php] 網路協定IPv4格式檢查方式

除了使用正規表達式來檢查IPv4格式是否正確,也可以直接使用php提供的ip2long函數來檢查,假設要檢查IP位址是否介於192.168.1.0~192.168.10.255之間,可以採用下列方式。

程式範例:
//要驗證的IP位址
$ip = "192.168.5.5";
//將IP轉換為數值(避免系統32位元及64位元計算的差異,數值先轉二進位再轉十進位)
$long = bindec(decbin(ip2long($ip)));
//檢查IP是否介於192.168.1.0~192.168.10.255之的區間
if ($long && $long >= 3232235776 && $long <= 3232238335){
    echo "正確!";
}else{
    echo "錯誤!";
}

輸出結果:
正確!

注意說明:
判斷式內的最小值「3232235776」及最大值「3232238335」的取得方式,請直接使用「echo bindec(decbin(ip2long(IP位址)));」取得。