私の個人的なブログ、ソースアドレス: http://www.woniubi.cn/get_client_ip/
過去 2 週間、私は友人の親戚の子供がチケットを磨くのを手伝いました。この過程で、システムの再インストール、ゴミの除去、タオバオでの買い物、QQ の盗用、映画のダウンロード、特定のソフトウェアが使用できないなどの問題にも遭遇しました。できないと言えば、彼らは言うでしょう。パソコンのスキルは非常に優れており、問題は解決できません。
ブラッシングチケットは、さまざまな制限、登録ユーザー、認証コード、IP制限に分かれています。この投票 Web サイトではなく、この投票ブラッシング Web サイトには IP 制限があります。制限を突破したい場合は、ユーザーの IP を取得する方法を理解する必要があります。
1:getenv('HTTP_X_FORWARDED_FOR')
2:getenv('HTTP_CLIENT_IP')
3:getenv('REMOTE_ADDR')
HTTP_X_FORWARDED_FOR
これはhttpヘッダーから取得され、その形式はA ip、B ip、C ipです。この状況には 2 つの理由があります
- Web サイトでは過剰な トラフィック のため負荷分散が使用されているため、ユーザーが直接アクセスできないようにアプリケーションの前にロード バランサーが配置されます。
- ユーザーはプロキシを使用してアクセスします。
ユーザーは最初に IP を使用します。プロキシのレイヤーが追加されるたびに、このヘッダーは最後にカンマで区切られて IP を 1 つ追加し、最終的に実際の Web コンテナーに到達します。ヘッダーから情報が得られる限り、その情報は偽造可能です。したがって、この場合に使用される A IP はユーザーの実際の IP ではない可能性があります。したがって、この場合、ロードバランサーに接続されている IP をユーザーの実際の IP とみなすことしかできません。少なくともこのデータは正しいです。ただし、この IP はユーザーの実際の IP ではなく、ユーザーのプロキシ IP である可能性があります。しかし、この状況は少なくともユーザーの偽の IP よりはマシです。
HTTP_CLIENT_IP
これも元々はユーザーの実際の IP を記録することを目的としていましたが、ほとんど使用されません。
REMOTE_ADDR
これは、接続を取得するための IP です。小規模な Web サイトのみがこの方法を使用し、データを直接公開します。サイトは負荷分散なしの単一ポイントです。上位層が pxory を使用する場合、このデータはプロキシの IP です。
私がやったことは、x-forwarder-for データを直接偽造して騙すことでした。しかし、数日以内にこの脆弱性が発見され、その後、プロキシを使用して直接スワイプすることに切り替えました。
以上、スワイプチケットからクライアントIPを取得する方法を内容も含めて紹介しましたが、PHPチュートリアルに興味のある友人の参考になれば幸いです。