web-dev-qa-db-ja.com

Apacheがあなたの国以外のパブリックIPからリクエストを受信したかどうかを知る方法はありますか?

私は、Apacheサーバーが別の国(ドイツなど)からのリクエストを受け取っているかどうかを知る方法を探しています(そのリクエストは公正なリクエスト(スパムやプロキシなし)を考慮しています)。 Apacheログでこれを別のエントリとして(dnsリクエストを使用して)表示したいですか?または何らかのアラート。これは可能ですか?.

3
asadz

Apache2にユーザーのアクセス元を検出させ、ヘッダーの変数を調整してログを記録し、cronジョブを設定してログをフレーズすることができますが、GEO IPデータベースにアクセスする必要があります。すべてのドメインではなく、ホストは.deとして解決されます。たとえ.deがドイツ語ベースであることを意味しない場合でも。

mod_geoip2 Apacheモジュール

この小さなモジュールを使用すると、GEOIPデータベースを使用して訪問者を検出し、htaccessまたはヘッダーリクエスト内のリダイレクト、ブロック、ログ、および他の多くの変数を使用できます。

例えば

GeoIPEnable On GeoIPDBFile /path/to/GeoIP.dat

# Redirect one country RewriteEngine on RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^CA$     RewriteRule ^(.*)$
http://www.domainname.com$1 [R,L]

# Redirect multiple countries to a single page RewriteEngine on RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(CA|US|MX)$ RewriteRule ^(.*)$
http://www.domainname.net/DE$1 [R,L]

最も簡単なソリューションは、それらをサイトのDE部分にリダイレクトし、フレージングを容易にすることです。ページを複製してnoindexを使用するだけで、ランキングに影響しません。

チェックアウト mod_geoip2

GEO IPデータベースコストマネー

データベースを最新の状態に保つために、リクエストのX量ごとにこれを支払う必要があるため、IPアドレスは国ごとに拡大および変更されています。 APIを使用するためのMaxmind をお勧めします。多くの自由度があり、価格設定も悪くないからです。

シンプルなソリューション

これを行う簡単な解決策はありません。ホストを解決することはできますが、ドイツの多くのISPは.deだけを使用するのではなく、.net .comなどを使用します。何が何であるかを知るためにデータベースが必要です。

1
Simon Hayter