(1.)訪問者が特定の IP アドレス範囲からのみページにアクセスできるようにしたい(段落 2) . IP アドレス リストに IP アドレスの正規表現を追加するだけで簡単に作成できます。
私の正規表現配列は次のとおりです。
$IP_LIST_ACCESS = array(
"/^188\.133\.11\.([1-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-4]))$/"
,"/^188\.133\.14\.([1-9]|[1-9][0-9]|1([0-1][0-9]|2[0-8]))$/"
,"/^127\.0\.0\.1$/"
);
(2.)上記の配列の IP 範囲は188.133.11.1-188.133.11.254
and 188.136.14.1-188.136.14.128
andです127.0.0.1
以下は、間違ったIPアドレスを検出して死ぬための私のコードです:
$USER_IP_ADDR = $_SERVER['REMOTE_ADDR'];
foreach ($IP_LIST_ACCESS as $IP_ACC_ARRAY)
{
if (!preg_match($IP_ACC_ARRAY, $USER_IP_ADDR))
{
echo '#INVALID IP'; #DEBUG
die;
}
}
(3.)上記のコードでは、常にINVALID IP
エラーが発生します(常に間違ったIPアドレスとして検出されます)。
問題はどこだ ?
EDIT
(4.)私はこれをやりたいだけで、より良い方法がある場合はpreg_matchと正確ではありません。