PHPで質問です。

下記、IPはダミーです。

あるサービスで、こちらのサーバーにアクセスしてくる仕組みがあるのですが、それ以外からのアクセスを禁止したく思います。

IP指定で、
IPアドレス帯:xxx.xxx.240.65~90
という記載があり、実際そのサービスからは
xxx.xxx.240.75でアクセスがきました。

要は、上記は
xxx.xxx.240.65~xxx.xxx.240.90の間のIPを
許可するようにすればよいのでしょうか?

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/12/02 03:31:23
  • 終了:2013/12/02 18:19:35

ベストアンサー

id:a-kuma3 No.2

a-kuma3回答回数4442ベストアンサー獲得回数18252013/12/02 09:49:17

ポイント150pt

php のプログラムで、アクセスしてくる相手の IPアドレスを確認して処理を振り分けるとしたら、こんな感じになります。

<?php

$ip = $_SERVER['REMOTE_ADDR'];

if (preg_match('/^xxx\.xxx\.240\.(\d+)$/', $ip, $matches)) {
    $oct4 = intval($matches[1]);
    if (65 <= $oct4 && $oct4 <= 90) {

        /* ここ以降に、許可するクライアントへの処理 */
            ...
        /* ここまで */

        return;
    }
}

/* 許可されないクライアント */
http_response_code(403);
?>

許可されないクライアントに対しては、レスポンスを空にしておくだけでも良いのかもしれませんが、403 (Forbidden) を返すようにしてます。

その他の回答(1件)

id:cawbridge2013 No.1

cawbridge2013回答回数173ベストアンサー獲得回数172013/12/02 08:07:48スマートフォンから投稿

ポイント150pt

IPテーブルで指定IPアドレス以外のパケットを破棄。

http://d.hatena.ne.jp/ihiroky/touch/20100104/1262590176

id:a-kuma3 No.2

a-kuma3回答回数4442ベストアンサー獲得回数18252013/12/02 09:49:17ここでベストアンサー

ポイント150pt

php のプログラムで、アクセスしてくる相手の IPアドレスを確認して処理を振り分けるとしたら、こんな感じになります。

<?php

$ip = $_SERVER['REMOTE_ADDR'];

if (preg_match('/^xxx\.xxx\.240\.(\d+)$/', $ip, $matches)) {
    $oct4 = intval($matches[1]);
    if (65 <= $oct4 && $oct4 <= 90) {

        /* ここ以降に、許可するクライアントへの処理 */
            ...
        /* ここまで */

        return;
    }
}

/* 許可されないクライアント */
http_response_code(403);
?>

許可されないクライアントに対しては、レスポンスを空にしておくだけでも良いのかもしれませんが、403 (Forbidden) を返すようにしてます。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません