3

私はPHPの初心者です。

HotSpot シールドを使用して自分の Web ページに表示するときに、私 (自分自身のみ。HotSpot シールド Web ページ用にホスト ファイルを変更しました) が指定されている IP アドレスが必要ですが、残念ながら、127.0.0.1 としてエコーされます。主な目的は、接続時に、設定した IP アドレスがページにエコーされることです。これは私が使用したコードです:

<?php $rmt = $_SERVER["REMOTE_ADDR"]; echo "$rmt \n" ?>

唯一の問題は、$rmt が 127.0.0.1 であることです。表示されるパブリックIPアドレスを表示する方法を知っている人はいますか?

4

3 に答える 3

4

これは、ローカル プロキシ サーバーで発生する可能性があります。リクエストとともに送信された他のヘッダーをチェックアウトし、次のvar_dump($_SERVER);ようなものを検索できX-Forwarded-ForますX-Real-IP

于 2012-05-13T11:36:14.930 に答える
1

私はちょうど同じ問題を抱えていました。結局のところ、私は自分の IP ではなくプロキシ IP アドレスを取得していました。だから私は走った:

var_dump($_SERVER) 
//you could also use print_r($_SERVER);

そして、次のようなものを探しました:

 ["HTTP_X_REAL_IP"]

次に、次のように var にキャプチャします。

$ip = getenv('HTTP_X_REAL_IP')
于 2015-07-07T01:50:34.293 に答える
1

$_SERVER['REMOTE_ADDR']は、接続元の IP アドレスを参照しています。ローカル マシンでサーバーを実行していて、ローカル マシンから接続している場合、ローカル IP が使用されます (127.0.0.1 は常に "localhost" です)。

別の IP を表示するには、別のサーバー (できればパブリック Web ホテル サーバー) で実行するか、別のマシンからサーバーに接続する必要があります。

于 2012-05-13T11:37:31.417 に答える