IPアドレスとサブネットマスクとRewriteCond

投稿日: 更新日:

例えば案件で、IPアドレスが1.22.33.44/27 の場合、RewriteCondでどのように指定していいか、と聞かれた。

サブネットマスク

後ろの「/27」とか「/24」とかは「サブネットマスク」と呼ばれるもの。

では、実際にどのようにIPにマスクが掛かるかについては、ググってみると「CIDR表」というものを見ると理解が早いようだ。

Wikipedia - IPアドレス(最終更新 2018年2月13日 (火) 14:18 (日時は個人設定で未設定ならばUTC)。)
https://ja.wikipedia.org/wiki/IP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9#%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%AF%E3%83%A9%E3%82%B9

※上記はWikipediaのソースだが、ググると他にも分かりやすそうな資料がいくつか出てくる。

IPアドレスとサブネットマスクからI、Pアドレスの範囲を得る

サブネットマスクを踏まえて計算すれば、対象となるIPアドレスの実際の範囲が算出できるが、手計算は間違ったり面倒だったり。

そこで同じ職場の方に聞いてみると、昨今は次のようなIPアドレスとサブネットマスクからIPアドレスの範囲を算出するサービスがウェブ上でいくつか公開されてる、との事。

早速ググってみると、次のサービス?を発見。

IPアドレス・サブネットマスク計算ツール
https://hogehoge.tk/ip/

これを使って計算すると、次のIPアドレスの範囲だよ、と結果を得た。

1. 22. 33. 33 ~ 1. 22. 33. 62

IPアドレスとサブネットマスクによる範囲指定を.htaccessのRewriteCondでどう指定するか

あまり詳しく調べてないが、mod_rewriteの性格上、次の様にそのまま指定しても受け付けられなさそう。

RewriteCond  %{REQUEST_URI} ^(1.22.33.44/27)$

そこで、次の様に正規表現で指定する形が無難と思われる。

RewriteCond  %{REQUEST_URI} ^1.22.33.(3[3-9]|[4-5][0-9]|6[0-2])$

関連するタグ

関連するタグは現在ありません。