PHPでIPを取得する一般的な方法は何を意味しますか?
質問 1:
IP を取得する一般的な方法は、$_SERVER 配列の "HTTP_CLIENT_IP"、"HTTP_X_FORWARDED_FOR"、および "REMOTE_ADDR" の 3 つの要素を使用することです。
これら 3 つの要素の値は何を表しますか?
オンラインで確認したのは次のとおりです:
HTTP_CLIENT_IP: クライアント IP を表します
HTTP_X_FORWARDED_FOR: プロキシ経由でインターネットにアクセスするクライアント IP
REMOTE_ADDR: 接続 IP
私の理解は次のとおりです:
( 1) クライアントがインターネットに直接接続されている場合:
HTTP_CLIENT_IP: クライアント IP を表示
HTTP_X_FORWARDED_FOR: なし
REMOTE_ADDR: クライアント IP を表示
(2) クライアントがプロキシ サーバーを経由している場合:
HTTP_CLIENT_IP: なし
HTTP_X_FORWARDED_FOR: クライアント IP を表示
REMOTE_ADDR: プロキシ サーバー IP を表示
これは正しいですか?
質問 2:
クライアントの IP 情報はヘッダーを通じて送信されますか?では、なぜ Firefox を使用してヘッダーをチェックすると関連情報が表示されないのでしょうか?
ありがとうございます!
-----解決策--------------------------------
1、そのはずです、オンライン 必要に応じて使用できる古典的な if ステートメントがありますが、これは紳士のみを識別でき、悪役には無効です。
2、HTTP_X_FORWARDED_FOR、これは利用できるはずです。他の 2 つの REMOTE_ADDR と CLIENT_IP は、どちらも accept によって取得される IP であり、HTTP_XFORWARDED_FOR の有無によって解釈が異なるだけだと個人的には感じています。
------解決策------------------
REMOTE_ADDR のみがユーザーの実際のパブリック ネットワークの入り口を反映します
その他はさまざまなネットワーク デバイスに添付されたコンテンツであり、参照のみです
それらは自由に構築できるため