プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
.htaccessでIPアドレスを範囲指定する
結論から書くと、CIDR表記で

deny from 192.0.2.0/24

のような書き方をします。

残念ながら

deny from 192.0.2.100-192.0.2.200

みたいな書き方をして、任意の範囲を指定することはできないみたいですね。
範囲指定できるというよりはサブネット単位で指定できると解釈した方が正確だと思います。

他のやり方としては

deny from 192.0.

のようにIPアドレスの前半部分だけを指定してやるのもアリと言えばアリです。

それでは詳細を書いていきます。

とある国からの元気いっぱいなアクセスが増えていたので、
まとめてアクセス制限をかけることにしました。
IPアドレスを一つずつ指定していくのは現実的じゃないでしょう。
さくっと範囲指定で拒否りたいんだけど、どーすんのよ(--?というのが、今回のきっかけです。

早速Google先生に訊いてみますかね。

ふむふむ(--)

deny from 192.0.2.0/24

みたいにCIDR表記で範囲指定しろ、らしいです。
この例では「192.0.2.0」から「192.0.2.255」までのIPアドレスを
一個一個指定したのと同じ結果になります。

ちなみにCIDR表記ってのは、IPアドレスとサブネットマスクを併記して、
IPアドレスのここまでがネットワーク部ですよ、と教えてあげる書き方ね。
手前味噌で恐縮ですが、細かいことはここら辺でも読んで、勉強してくださいφ(--)

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
サブネットマスクとは
CIDRとは
CIDR表記とは

ふ~ん、なるほど(--)
要するにサブネット単位で拒否できますよってことなのですね。
マスクを調整することで、対象範囲をある程度調整はできますが、
完全に任意での範囲指定はできないっぽいですね(--ゞ

まぁ冷静に考えたら、任意の範囲指定をしたいケースってほとんどないのでしょう。
範囲指定したいのは、特定の組織や国、要するに特定のネットワークからのアクセスを
拒否したいときですもんね。
上手くできてますね(--ゞ

というのが一般的な範囲指定のやり方のようですが、
実はIPアドレスの前半部分だけを指定する形でも範囲指定できます。

例えば

deny from 192.0.2.

と書くと「192.0.2.0」から「192.0.2.255」までのIPアドレスを
一個一個指定したのと同じ結果になりますし

deny from 192.0.

と書くと「192.0.0.0」から「192.0.255.255」までのIPアドレスを
一個一個指定したのと同じ結果になりますよ。

ただし

deny from 192.0.2.1

と書いた場合は「192.0.2.1」一つだけが対象です。

192.0.2.0.10~192.0.2.0.19
192.0.2.0.100~192.0.2.0.199

の範囲は対象にならないのでご注意ください。
単純な前方一致ではないっぽいですね。

IPアドレスの一部を指定する書き方は、ちょっと注意が必要です。
意図しないIPアドレスを拒否しないようにご注意ください。

最後にもう一度まとめておきますね。
.htaccessでIPアドレスを範囲指定したい場合は

deny from 192.0.2.0/24

のようにCIDR表記でネットワーク単位で指定する。
あるいは

deny from 192.0.2.

のようにIPアドレスの前半部分だけを指定すればOKです。

ってなところで、.htaccessにおけるIPアドレスの範囲指定、完了\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● 環境設定関連 

  関連記事