PHPでIPアドレスが指定した範囲内にあるかどうか判別する

PHP

今回はアクセスしてきたIPアドレスが、サブネットマスクを含んだ指定のIPアドレスに該当するものかどうかを判断します。

IPアドレスチェック

$accept_limit = ‘203.0.113.0/24’;  //制限IP
$remote_ip = $_SERVER[‘REMOTE_ADDR’];  //アクセスIP

list($accept_limit_ip, $mask) = explode(‘/’, $accept_limit);
$accept_limit_long = ip2long($accept_limit_ip) >> (32 – $mask);
$remote_long = ip2long($remote_ip) >> (32 – $mask);

if ($accept_limit_long == $remote_long) {
    echo ‘acceptable’;
} else {
    echo ‘not acceptable’;
}

タイトルとURLをコピーしました