2010-12-12 7 views
16

Ich arbeite auf einer Website, und eines der Dinge, die ich tun möchte, ist die MY IP-Adresse für die Benutzer anzuzeigen. Die Website wurde mit CodeIgniter erstellt, also suchte ich nach meiner Server-IP mit PHP. Die IP-Adresse kann sich ändern (es ist ein Roamer), also würde ich es gerne dynamisch finden, nicht nur hart programmieren. Ich habe versucht, dieses:PHP-Display-Server IP-Adresse

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

Doch statt mich den Hostnamen des Gebens und die IP, ich habe: „Moria“ und „127.0.1.1“. Nicht ganz, wonach ich suche. Stattdessen sollte "Moria.student.rit.edu" für den Hostnamen und die IP-Adresse angegeben werden. Irgendeine Hilfe?

Antwort

-5

Wenn Ihr Laravel Anwendung auf einem internen Server ausgeführt wird, können Sie das folgende erhalten die externe Adresse des Servers verwenden können:

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

Böse, böse und falsch. Dieser Code ist sehr schlecht und sollte niemals in der Produktion verwendet werden. Sie sollten die intrinsische PHP Curl-Bibliothek verwenden. Dadurch wird vermieden, dass der http-Prozess eine Shell erzeugt. Wer weiß, ob 'curl' im Weg ist? Wofür ist das Echo? In jedem Fall sollte ein Webserver niemals außerhalb des Umkreises Ihrer Organisation erlaubt sein. Wenn es muss, sollte es über einen internen Proxy passieren. – dland

+2

Nicht eine einzige Erwähnung von Laravel existiert auf dieser gesamten Seite akzeptieren Sie Ihre. -1 – TheBlackBenzKid