• 締切済み

アクセス拒否

指定したIPアドレスからのアクセスを拒否する、(拒否したときはエラーを表示させる)といったソースはどういうものになりますか?掲示板にその機能をつけようとおもっています。 指定するIPアドレスは、 @denyに格納するとします。

みんなの回答

  • 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 なんかを使って取得できる場合があります。

関連するQ&A