2010-08-16 244 views
4

我基本上需要創建一個將導航到服務器上不同端口的錨點。例如,我們的服務器託管於domain.com:555,我們需要一個鏈接導航到domain.com:777。問題在於它並不總是domain.com。我們可以預計DNS發生故障,在這種情況下,我們將使用ip地址導航,如xx.xx.xx.xx:555xx.xx.xx.xx:777在PHP中獲取服務器的主機名或IP地址

我需要獲取運行PHP腳本的服務器的主機名。我嘗試使用SERVER_ADDR,但出於理性給我的服務器的私有IP。

那麼如何獲得url的域名/ ip部分呢?

回答

14

你想:

$_SERVER['HTTP_HOST'] 

$_SERVER預定義變量,這對於'HTTP_HOST'包括:主機的

內容:從目前的請求頭,如果有一個。

您也可能會發現:

$_SERVER['SERVER_NAME'] 

有用的,他們的啓發相對優勢this Stack Overflow discussion

+0

是可靠的嗎? – HyderA 2010-08-16 11:02:19

+0

哪個? 'HTTP_HOST'或'SERVER_NAME'?兩者的答案可能都不是 - 閱讀我關聯的討論! – 2010-08-16 11:03:27

+0

@gAMBOOKa - 如果您的服務器沒有在標題中輸出主機名稱,它總是可靠的,如果它是一個虛擬主機服務器,這是非常不可能的。 – SimonDowdles 2010-08-16 11:03:41

3

嘗試$_SERVER['HTTP_HOST'];這會給你的主機名/域名

+3

@Dominic Rodger - 雙重發布您的答案的道歉,我只有看到您的回覆後,我張貼,信用是你的! – SimonDowdles 2010-08-16 11:02:17

+0

很好,一直髮生! – 2010-08-16 11:03:44