2010-12-12 50 views
16

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

$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 de la propriété intellectuelle, je suis arrivé: « Moria » et « 127.0.1.1 ». Pas tout à fait ce que je cherche. Plutôt, il devrait dire "Moria.student.rit.edu" pour le nom d'hôte, et l'adresse IP. De l'aide?

Répondre

-5

Si votre application Laravel fonctionne sur un serveur interne, vous pouvez utiliser ce qui suit pour obtenir l'adresse externe du serveur:

$external_ip = exec('curl http://ipecho.net/plain; echo'); 
+2

Mal, mauvais et faux. Ce code est très pauvre et ne devrait jamais être utilisé en production. Vous devriez utiliser la bibliothèque PHP Curl intrinsèque. Cela évite de forcer le processus http pour générer un shell. Qui sait si "curl" est dans le chemin? Quel est le 'echo' pour? Dans tous les cas, un serveur web ne devrait jamais être autorisé en dehors du périmètre de votre organisation. S'il le faut, il devrait passer par un proxy interne. – dland

+2

Pas une seule mention de laravel existe sur cette page entière accepter la vôtre. -1 – TheBlackBenzKid