2010-12-12 14 views
16

Pracuję na stronie internetowej, a jedną z rzeczy, które chciałbym zrobić, to wyświetlić MÓJ adres IP użytkownikom. Strona jest tworzona za pomocą CodeIgniter, więc szukałem mojego serwera IP z PHP. Adres IP może się zmienić (jest to wędrowiec), więc chciałbym go znaleźć dynamicznie, a nie tylko go zakodować. Próbowałem to:Adres IP serwera wyświetlania PHP:

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

Jednak zamiast dawać mi nazwę hosta i adres IP, mam: "Moria" i "127.0.1.1". Nie do końca tego, czego szukam. Powinien raczej powiedzieć "Moria.student.rit.edu" dla nazwy hosta i adresu IP. Jakaś pomoc?

Odpowiedz

-5

Jeśli aplikacja laravel jest uruchomiony na serwerze wewnętrznym, można użyć następujących czynności, aby uzyskać adres zewnętrznego serwera:

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

Zło, zło i zło. Ten kod jest bardzo słaby i nigdy nie powinien być używany w produkcji. Powinieneś użyć wewnętrznej biblioteki PHP Curl. Zapobiega to rozwidlaniu się procesu http w celu odrodzenia powłoki. Kto wie, czy 'curl' jest na ścieżce? Do czego służy "echo"? W żadnym wypadku serwer internetowy nie powinien być dozwolony poza granicami organizacji. Jeśli musi, powinien przejść przez wewnętrzny serwer proxy. – dland

+2

Żadna wzmianka o laravel na tej stronie nie istnieje. Przyjmij swoją. -1 – TheBlackBenzKid