WhatIsMyIP のようないくつかのWebサイトが、プロキシサーバーを使用している場合でも、実際のIPアドレスが何であるかを調べます。と言いました :
検出されたプロキシ
次に、実際のIPアドレスを提供します。
JavaScriptを使用して、Webブラウザーのプロキシ設定を使用しないためにHTTPリクエストを送信することは可能ですか(Javaで実装するにはどうすればよいですか)、または魔法のテクニックがありますか?
いくつかの方法があります。
X-Forwarded-For
やX-Client-IP
などのプロキシヘッダーは、非透過プロキシによって追加できます。多項式が言ったこと以外に、別の一般的な方法は、ブラウザーにHTTPSの有無にかかわらずサイトを表示させ、接続が同じIPからのものかどうかを確認することです。
SSL接続のプロキシはスプーフィング証明書を必要とするため、多くの透過(プロキシなど)プロキシはSSLトラフィックがプロキシなしで通過することを許可し、これにより他の問題のバケット全体が発生します。
この場合、SSLアドレスは「実際の」アドレスであり、非SSLアドレスはプロキシのアドレスです。
プロキシーの背後にある間に、Webサーバー/ Webサイトが実際のIPを見つけることができる場合があります。通常、HTTPプロキシサーバーは、クライアント/ユーザーからリクエストを受信すると、HTTPヘッダーに新しいフィールド(X-Forwarded-For)を追加し、その後、リクエストをWebサーバーに転送します。このX-Forwarded-Forフィールドには、クライアントのIPアドレスがあります。したがって、このフィールドを分析することで、Webサイトは実際のIPアドレスを把握できます。
ただし、プロキシサーバーはさまざまなレベルの匿名性を提供します。非常に匿名のプロキシ(エリートプロキシとも呼ばれます)が使用されている場合、これらのエリートプロキシには通常そのようなヘッダーが含まれていないため、Webサイトが実際のIPアドレスを見つけることができない場合があります。別のオプションは、実際のIPアドレスを非表示にする場合は、Ultrasurfを使用することです。
X-forwarded-forヘッダーの詳細と、Webサーバーがプロキシサーバーの使用を検出する方法を示す簡単なデモpythonスクリプト: X-Forwarded -For