Следующий код для определения фактического локального IP-адреса (например, 192.168.1.X
) хост-сервера отлично работает на машине разработчика
$ip = getHostByName( getHostName() );
Перенося его на другой сервер, он начал выводить 127.0.0.1
Кажется, что getHostName () возвращает localhost
, который, в свою очередь, преобразуется в 127.0.0.1
с помощью getHostByName ( ).
При рассмотрении других вопросов здесь выяснилось, что $ _ SERVER ['SERVER_ADDR']
может решить загадку, но это также возвращает 127.0.0.1
Проверка и поиск выходных данных из phpinfo ()
не возвращает никаких подсказок о фактическом IP-адресе машины.
Серьезно, знает ли кто-нибудь пуленепробиваемый (чем проще, тем лучше) способ получить IP-адрес машины, на которой запущен сценарий? Почему так сложно получить такие фундаментальные данные, не выполняя обратное сальто?
Я действительно не хочу жестко кодировать IP-адрес в файле конфигурации ...