2010-05-21 10 views
5

Tous,Récupérer le nom de domaine au lieu de l'adresse IP

J'utilise la commande suivante pour récupérer le nom de domaine de mon serveur.

$_SERVER['HTTP_HOST'] 

Cela semble renvoyer l'adresse IP au lieu du nom de domaine comme www.example.com. J'ai regardé PHPInfo et il liste également une adresse IP pour HTTP_HOST au lieu du nom de domaine. Que dois-je changer pour que le nom de domaine apparaisse à la place de IP?

Merci

Répondre

6

Utilisez $_SERVER['SERVER_NAME'] à la place.

Ou, vous pouvez consulter toutes les variables serveur disponibles mais en plaçant ce script dans l'une de vos pages PHP sur ce serveur.

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

qui répertorie également l'adresse IP au lieu du nom de domaine – Jake

+2

@Vincent: Si '$ _SERVER ['SERVER_NAME']' affiche une adresse IP, Apache est mal configuré, car il doit contenir la valeur de la directive ServerName d'Apache: http://httpd.apache.org/docs/ 2.2/mod/core.html # nom_serveur – Powerlord

+0

... ou juste 'var_dump ($ _ SERVER)' – Kzqai

1

$_SERVER['HTTP_HOST'] (qui peut ne pas être défini si le client fait une demande HTTP/1.0) contient le nom d'hôte que le client a demandé.

Si le client demandait http://127.0.0.1/, il contiendrait 127.0.0.1; pour http://localhost/ il contiendrait localhost; pour http://127.0.0.1:81/ il contiendrait 127.0.0.1:81.

+0

Est-il correct de définir l'adresse IP avec un nom d'hôte dans le fichier/etc/hosts et probablement ce $ _SERVER ["SERVER_NAME"] ou $ _SERVER ["HTTP_HOST"] va le ramasser? – Jake

1

gethostbyaddr() peut récupérer un nom d'hôte pour l'adresse IP, mais uniquement si l'enregistrement DNS a été mis en place correctement

Questions connexes