2010-05-21 3 views
5

Все,Восстановить доменное имя вместо IP

Я использую следующую команду для получения имени домена для моего сервера.

$_SERVER['HTTP_HOST'] 

Это, кажется, возвращает IP-адрес вместо доменного имени, например www.example.com. Я просмотрел PHPInfo и также перечисляет IP-адрес для HTTP_HOST вместо имени домена. Что мне нужно изменить, чтобы вместо имени домена отображалось имя домена?

Благодаря

ответ

6

Используйте $_SERVER['SERVER_NAME'] вместо.

Или вы можете посмотреть каждую имеющуюся версию сервера, но поместив этот скрипт на одну из ваших страниц PHP на этом сервере.

<?PHP 
foreach($_SERVER as $key_name => $key_value) { 
    print $key_name . " = " . $key_value . "<br>"; 
} 
?> 
+0

Это также содержит список IP-адрес вместо имени домена – Jake

+2

@Vincent: Если '$ _SERVER ['SERVER_NAME']' перечисляет IP-адрес, Apache неправильно сконфигурирован, так как это должно содержать значение директивы ServerName Apache: http://httpd.apache.org/docs/ 2.2/mod/core.html # servername – Powerlord

+0

... или просто 'var_dump ($ _ SERVER)' – Kzqai

1

$_SERVER['HTTP_HOST'] (который не может быть определен, если клиент сделал/1.0 запроса HTTP) содержит имя хоста, запрошенный клиент.

Если клиент запросил http://127.0.0.1/, он будет содержать 127.0.0.1; для http://localhost/ он будет содержать localhost; для http://127.0.0.1:81/ он будет содержать 127.0.0.1:81.

+0

Можно ли определить IP-адрес с помощью имя хоста в файле/etc/hosts и, вероятно, этот $ _SERVER ["SERVER_NAME"] или $ _SERVER ["HTTP_HOST"] подберет его? – Jake

1

gethostbyaddr() может получить имя хоста для IP-адреса, но только если DNS запись была настроена правильно

Смежные вопросы