2010-12-12 149 views
16

我正在一個網站上工作,我想要做的事情之一是顯示我的IP地址給用戶。該網站是用CodeIgniter製作的,所以我正在尋找使用PHP查找我的服務器IP。 IP地址可能會改變(這是一個漫遊者),所以我想動態地找到它,而不是硬編碼它。我嘗試這樣做:PHP顯示服務器IP地址

$data['hostname'] = NULL; 
$data['ip'] = NULL; 
$var = gethostname(); 
if ($var === FALSE) { 
    $var = NULL; 
} else { 
    $data['hostname'] = $var; 
    $data['ip'] = gethostbyname($var); 
} 

然而,不是給我的主機名和IP,我得到了:「莫里亞」和「127.0.1.1」。不是我正在尋找的東西。相反,它應該爲主機名稱和IP地址說「Moria.student.rit.edu」。任何幫助?

回答

-5

如果您laravel應用程序內部的服務器上運行,你可以使用以下獲取服務器的外部地址:

$external_ip = exec('curl http://ipecho.net/plain; echo'); 
+2

邪惡,不好和錯誤。該代碼非常差,不應該用於生產。你應該使用內在的PHP Curl庫。這避免了派生一個shell的http進程。誰知道'curl'是否在路上?什麼是「回聲」?無論如何,Web服務器決不應該被允許在組織的外圍之外。如果必須的話,它應該通過內部代理。 – dland 2015-11-13 10:42:37

+2

在整個頁面上都沒有提到laravel,接受你的。 -1 – TheBlackBenzKid 2016-01-25 09:09:31