IP-адрес сервера отображения PHP
Я работаю над веб-сайтом, и одна из вещей, которые я хотел бы сделать, это показать MY IP-адрес для пользователей. Веб-сайт создан с помощью CodeIgniter, поэтому я искал, чтобы найти свой IP-адрес сервера с PHP. IP-адрес может измениться (это роамер), поэтому я бы хотел найти его динамически, а не просто его жестко. Я пробовал это:
$data['hostname'] = NULL;
$data['ip'] = NULL;
$var = gethostname();
if ($var === FALSE) {
$var = NULL;
} else {
$data['hostname'] = $var;
$data['ip'] = gethostbyname($var);
}
Однако вместо того, чтобы указывать мне Hostname и IP, я получил: "Moria" и "127.0.1.1". Не совсем то, что я ищу. Скорее, он должен указать "Moria.student.rit.edu" для Hostname и IP-адрес. Любая помощь?
Ответы
Ответ 1
Попробуйте $_SERVER['SERVER_ADDR']
. Это будет IP-адрес, который сервер прослушивает. Вы можете использовать функции DNS (например, gethostbyaddr()
), чтобы получить имя хоста.
См. http://www.php.net/manual/en/reserved.variables.server.php.
Ответ 2
Если ваше приложение laravel запущено на внутреннем сервере, вы можете использовать следующее для получения внешнего адреса сервера:
$external_ip = exec('curl http://ipecho.net/plain; echo');