Maxmindのプロキシ検出ソフトウェアのようなプロキシを検出または評価するスクリプトを作成する方法はありますか?
私はすでにこのコードを使用しようとしましたが、すべてのプロキシを検出するわけではありません。実際、それは非常に少量のプロキシを検出しますが、Maxmindはさらに多くを検出できます。
if(
!gethostbyaddr($_SERVER['REMOTE_ADDR'])
|| gethostbyaddr($_SERVER['REMOTE_ADDR']) == "."
|| !$_SERVER['HTTP_ACCEPT_ENCODING']
|| $_SERVER['HTTP_X_FORWARDED_FOR']
|| $_SERVER['HTTP_X_FORWARDED']
|| $_SERVER['HTTP_FORWARDED_FOR']
|| $_SERVER['HTTP_VIA']
|| $_SERVER['HTTP_FORWARDED']
|| $_SERVER['HTTP_CLIENT_IP']
|| $_SERVER['HTTP_FORWARDED_FOR_IP']
|| $_SERVER['VIA']
|| $_SERVER['X_FORWARDED_FOR']
|| $_SERVER['FORWARDED_FOR']
|| $_SERVER['X_FORWARDED FORWARDED']
|| $_SERVER['CLIENT_IP']
|| $_SERVER['FORWARDED_FOR_IP']
|| $_SERVER['HTTP_PROXY_CONNECTION']
|| in_array($_SERVER['REMOTE_PORT'], array(8080,80,6588,8000,3128,553,554))
|| @fsockopen($_SERVER['REMOTE_ADDR'], 80, $errno, $errstr, 0)
|| !$_SERVER['HTTP_CONNECTION']
)
{
echo 'proxy';
}
else
{
echo 'no proxy';
}
解決策はありますか?
プロキシ/ vpnの使用を検出する確実な方法はありません。あなたがやったこと(それは多くのユーザーを捕まえないでしょう)を除いて、あなたのお金の最大の強みはIPブラックリストです(これはおそらくmaxmindがプロキシを検出する方法です)。
以下は、IPブラックリストを提供しているサイトの一部です(私はそれらのサイトでの経験がありません)。
ウェブプロキシを検出するために実行できる他のトリック(グーグル翻訳など)があります。これらのトリックにより、ヘッダーが追加される場合があります。問題は、実行するすべてのケースに特別なケースを追加する必要があることです(ほとんどの場合、そうではありません)。
この投稿は古いので、誰かがGoogleでこの投稿を見つけました
多くのサーバーが無料で使用できるdnsblについて確認する
私はいくつかのdnsblサーバーを使用し、多くのvpnプロキシとTorは私のWebサイトでブロックされています。ユーザーIPをデータベースに特定の時間保持することをお勧めします。私がそれを行う前に鉱山は5〜10秒かかりました、今度はDBを使用すると、最初のロード後にすべてのユーザーがより速くロードします
1-IPが見つかったらDBをチェックします。 (ステップ2に進み、ステップ4に進みません)
2-内にいる場合、彼が制限時間を超過している場合は追加された日付を確認し、IPを削除してリクエストを再送信します(制限時間内にある場合は、ステップ3に進み、超過している場合はステップ4に進みます)。
3- IPがブロックされているかどうかをDBで確認します(はい、そこでスクリプトを停止し、ページをロードしません).
4- ipが古いか、DB内にない場合、dnsblサーバーにリクエストを送信します。
5-彼の答えを確認し、現在の時間と彼が禁止されているかどうかをDBにIPを追加します
6-ステップ3のようにページをロードする