PHP コードを使用して IP が IP セグメント内にあるかどうかを判断するには、ip2long 関数を使用して IP アドレスを整数に変換し、サイズを比較します。以下は実装コードです。
/**
* 判断某个 IP 是否在 IP 段内
*
* @param string $ip IP 地址
* @param string $startIp 起始 IP
* @param string $endIp 结束 IP
* @return bool
*/
function inIpRange($ip, $startIp, $endIp)
{
$ipInt = ip2long($ip);
$startIpInt = ip2long($startIp);
$endIpInt = ip2long($endIp);
return ($ipInt >= $startIpInt && $ipInt <= $endIpInt);
}
呼び出し時に、判定対象の IP アドレス、IP セグメントの開始アドレスと終了アドレスを渡すと、関数は、IP アドレスが指定された IP セグメント内にあるかどうかを示すブール値を返します。
PHP の組み込み ip2long 関数を使用して IP アドレスを整数に変換し、次に IP セグメントの開始 IP と終了 IP をそれぞれ整数に変換し、最終的に決定する IP 整数が範囲内であるかどうかを判断できます。 IPセグメント。以下は実装コードです。
function isIpInRange($ip, $start, $end)
{
if (filter_var($ip, FILTER_VALIDATE_IP) && filter_var($start, FILTER_VALIDATE_IP) && filter_var($end, FILTER_VALIDATE_IP)) {
$startLong = ip2long($start);
$endLong = ip2long($end);
$ipLong = ip2long($ip);
if ($ipLong >= $startLong && $ipLong <= $endLong) {
return true;
}
}
return false;
}
isIpInRange($ip, $start, $end) 関数を呼び出し、決定する IP アドレス、IP セグメントの開始 IP と終了 IP を渡します。この関数は、IP が決定されるかどうかを示すブール値を返します。指定された IP セグメント範囲内にあります。この機能は IPv4 アドレスでのみ機能することに注意してください。