PHP コードを使用して IP が IP セグメント内にあるかどうかを判断するにはどうすればよいですか?

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 アドレスでのみ機能することに注意してください。

おすすめ

転載: blog.csdn.net/qq_27487739/article/details/132845269