2012-05-13 17 views
3

私はPHPでかなり初心者です。PHP - IPアドレスが127.0.0.1として返される

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

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

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

答えて

1

$_SERVER['REMOTE_ADDR']ようなもののために検索することができますが、接続元のIPアドレスを参照しています。ローカルマシン上でサーバーを実行し、ローカルマシンから接続する場合、ローカルIPを使用します(127.0.0.1は常に "localhost"です)。

別のIPを表示するには、別のサーバー(好ましくはパブリックWebホテルサーバー)で実行するか、別のコンピューターからサーバーに接続する必要があります。

4

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

+0

良いアイデア。私はそれを考えなかった。私はOPがすべてをローカルで実行していると仮定しました。そうでない場合は、試してみる価値があります! –

1

私はちょうど同じ問題を抱えていました。 私の知るところではなく、プロキシのIPアドレスを取得していました。

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

をし、このような何かを探し: は、だから私は走った

["HTTP_X_REAL_IP"] 

次に、このようなVARにそれをキャプチャ:

$ip = getenv('HTTP_X_REAL_IP') 
関連する問題