2011-11-22 108 views
5

如何檢查訪問該頁面的URL是否是原始URL或者它是否是CNAME記錄。如何檢查域名是否是PHP中的CNAME

例如,我有一個網站domain.com。用戶可以設置一個CNAME,他們將www.otherdomain.com鏈接到我們的網站domain.com

從我們的服務器角度來看,如何檢測訪問該頁面的網址是實際的網址(domain.com)還是CNAME網址(www.otherdomain.com)?

+0

這種想法是否需要專用IP? – JBithell

回答

9

我認爲你必須查詢DNS才能知道它,因爲這些信息通常不會在請求標題中出現。

查看PHP文檔中的dns_get_recordcheckdnsrr函數。

+0

dns_get_record是正確的答案。我得到它的工作。謝謝。 – Pinkie

2

您可以使用PHPDNS類庫來找出哪種DNS記錄是給定的url。

$answer->results[x]->typeid //Textual record type ID (A, MX, CNAME etc) 
1

如果你正在檢查網址,你可以在PHP中使用$_SERVER['HTTP_HOST']。這是來自URL的請求主機(例如,http://otherdomain.com/blah.php將使服務器變爲otherdomain.com)。 $_SERVER['SERVER_NAME']是httpd.conf中配置的servername。

如果HTTP_HOST!= SERVER_NAME,那麼遠程用戶幾乎肯定會使用某種別名來訪問該站點。

+0

HTTP_HOST和HTTP_NAME都給我otherdomain.com – Pinkie