web-dev-qa-db-fra.com

PHP afficher l'adresse IP du serveur

Je travaille sur un site Web et l'une des choses que j'aimerais faire est d'afficher mon adresse IP aux utilisateurs. Le site Web est fait avec CodeIgniter, donc je cherchais à trouver mon IP de serveur avec PHP. L'adresse IP peut changer (c'est un itinérant), donc j'aimerais la trouver dynamiquement, pas seulement la coder en dur. J'ai essayé ceci:

$data['hostname'] = NULL;
$data['ip'] = NULL;
$var = gethostname();
if ($var === FALSE) {
  $var = NULL;
} else {
  $data['hostname'] = $var;
  $data['ip']   = gethostbyname($var);
}

Cependant, au lieu de me donner le nom d'hôte et l'IP, j'ai obtenu: "Moria" et "127.0.1.1". Pas tout à fait ce que je recherche. Il doit plutôt indiquer "Moria.student.rit.edu" pour le nom d'hôte et l'adresse IP. De l'aide?

19
Ethan Mick

Essayez $_SERVER['SERVER_ADDR']. Ce sera l'adresse IP que le serveur écoute. Vous pouvez utiliser les fonctions DNS (par exemple, gethostbyaddr()) pour obtenir le nom d'hôte.

Voir http://www.php.net/manual/en/reserved.variables.server.php .

49
Matthew