2012-05-13 43 views
3

我是一個PHP新手。PHP - IP地址回顯爲127.0.0.1

當我使用HotSpot盾牌在我的網頁上顯示時,我想知道我的IP地址(我只是,我修改了我的主機文件,用於HotSpot盾牌網頁),但不幸的是,它的回顯爲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,您需要在另一臺服務器(最好是公共網站酒店服務器)上運行它,或者從另一臺機器連接到您的服務器。

4

這可能發生在本地代理服務器上;你可以檢查出由var_dump($_SERVER);您的要求發送的其他頭和搜索的東西一樣X-Forwarded-ForX-Real-IP

+0

好主意。我沒有想到這一點。我只是假設OP在本地運行一切。如果情況並非如此,那麼這是值得一試! –

1

我只是有同樣的問題。 事實證明,我得到的是代理IP地址,而不是我自己的IP。 所以我跑:

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

然後看着這樣的事情:

["HTTP_X_REAL_IP"] 

然後捕獲它變成一個變種是這樣的:

$ip = getenv('HTTP_X_REAL_IP')