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])$
関連するタグ
関連するタグは現在ありません。