特定の国からの訪問者をブロックしたいのですが、それを書く正しい方法は何ですか?
使用しようとしましdeny from ip
たが、これは正しい方法ではありません。
5 に答える
ファイルである必要がある場合は、 ipinfodb.com.htaccess
で入手可能な自動ジェネレータツールを使用できます。たとえば、http://freegeoip.net/static/index.htmlのようなジオロケーションサービスのAPIを使用することもできます。
正しい方法は、htaccess を使用しないことです。どの間隔がどの国に影響するかを示す IP 間隔で既に満たされたテーブルを使用して、PHP チェックを行うことができます。
編集:
htacces を使用する場合deny from ip
は、国の IP 範囲ごとに 1 行を記述する必要があります (たとえば、10 か国をブロックしようとすると、混乱が生じる可能性があり、これが悪い考えである理由です)。
Apacheの.htaccessファイルを使用して特定のネットワークをブロックするのは非常に簡単です。たとえば、追加...
221.140.10.0/24から拒否
..221.140.10.0 Class-Cネットワーク(別名スラッシュ-24)からのトラフィックをブロックします。
したがって、特定の国をブロックすることは、それらの国のすべてのネットワークを見つけて、上記のような一連のエントリを作成することだけです。
この参照リンクはあなたを助けるかもしれません
どの方法を使用しても、完全に証明されることはありません。ユーザーは、プロキシを使用して、実際の場所とは異なる地理的な場所にいるように見せることができます。ユーザーが特定の領域からサイトにアクセスするのをブロックすることが重要な場合は、(IP アドレスに依存しない) さまざまな認証方法を検討する必要があります。