2010-05-21 12 views
5

Alle,Abrufen des Domänennamens anstelle von IP

Ich verwende den folgenden Befehl, um den Domänennamen meines Servers abzurufen.

$_SERVER['HTTP_HOST'] 

Dies scheint die IP-Adresse anstelle von Domain-Namen wie www.example.com zurückzugeben. Ich schaute auf PHPInfo und es listet auch eine IP-Adresse für HTTP_HOST anstelle von Domain-Namen auf. Was muss ich ändern, damit der Domainname anstelle von IP angezeigt wird?

Dank

Antwort

6

Verwenden $_SERVER['SERVER_NAME'] statt.

Oder Sie können sich jede verfügbare Servervariable ansehen, aber dieses Skript in eine Ihrer PHP-Seiten auf diesem Server einfügen.

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

eingerichtet wurde, die auch die IP-Adresse auflistet anstelle des Domain-Namens – Jake

+2

@Vincent: Wenn '$ _SERVER ['SERVER_NAME']' eine IP-Adresse auflistet, ist Apache falsch konfiguriert, da dies den Wert der ServerName-Direktive von Apache enthalten sollte: http://httpd.apache.org/docs/ 2.2/mod/core.html # Servername – Powerlord

+0

... oder nur 'var_dump ($ _ SERVER)' – Kzqai

1

$_SERVER['HTTP_HOST'] (die definiert werden können, nicht, wenn der Client eine HTTP/1.0 Anfrage gemacht) enthält die Host-Namen, die der Client angefordert.

Wenn der Client http://127.0.0.1/ angefordert hat, enthält er 127.0.0.1; für http://localhost/ würde es localhost enthalten; für http://127.0.0.1:81/ würde es 127.0.0.1:81 enthalten.

+0

Ist es in Ordnung, die IP-Adresse mit a zu definieren? Host-Name in/etc/hosts-Datei und wahrscheinlich $ _SERVER ["SERVER_NAME"] oder $ _SERVER ["HTTP_HOST"] wird es aufnehmen? – Jake

1

gethostbyaddr() einen Hostnamen für die IP-Adresse abgerufen werden kann, aber nur, wenn DNS-Eintrag richtig

Verwandte Themen