- 締切済み
アクセス拒否
指定したIPアドレスからのアクセスを拒否する、(拒否したときはエラーを表示させる)といったソースはどういうものになりますか?掲示板にその機能をつけようとおもっています。 指定するIPアドレスは、 @denyに格納するとします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Ethersky
- ベストアンサー率71% (168/235)
回答No.2
皆が固定IPアドレスというわけではない(たいていDHCPからの割り当て)ので、次にアクセスしてきたときに同じIPアドレスという保証はありません。 ですので正規表現を使うと多少制限しやすくなります。 例 123.456.789.0や123.456.789.123を拒否するなら配列には123.456.789.*と入れておく。 123.456.789.123や123.456.789.133を拒否するなら配列には123.456.789.1?3と入れておく。 foreach (@deny){ s/\./\\./g; s/\?/\./g; s/\*/\.\*/g; if($ENV{'REMOTE_ADDR'} =~ /$_/g){拒否なルーチン} }
- estea
- ベストアンサー率44% (39/87)
回答No.1
IP は $ENV{'REMOTE_ADDR'}; で分かります。 foreach $denyIp( @deny ){ if($ENV{'REMOTE_ADDR'} eq $denyIp){ #拒否なルーチン } } ホスト名も gethostbyaddr なんかを使って取得できる場合があります。