Подтвердить что ты не робот

Лучший способ получить имя хоста с php

У меня есть приложение php, которое установлено на нескольких серверах и на всех наших ноутбуках разработчиков. Мне нужен быстрый и надежный способ получить имя хоста сервера или другой уникальный и надежный системный идентификатор. Вот что мы до сих пор думали:

<? $hostname = (!empty($_ENV["HOSTNAME"])) ? $_ENV["HOSTNAME"] : env('HOSTNAME'); ?>

<? $hostname = gethostbyaddr($_SERVER['SERVER_ADDR']); ?>

<? $hostname = exec('hostname'); ?>

Как вы думаете?

4b9b3361

Ответ 1

Как насчет gethostname()?

Изменить: Возможно, это не вариант, в зависимости от вашей среды. Это новое в PHP 5.3. php_uname ('n') может работать как альтернатива.

Ответ 3

Вы также можете использовать...

$hostname = getenv('HTTP_HOST');

Ответ 4

Принятый ответ gethostname() может иметь значение, дает вам неточное значение, как в моем случае

gethostname()         = my-bacbook-pro     (incorrect)
$_SERVER['host_name'] = mysite.git         (correct)

Значение из gethostname(), очевидно, неверно. Будьте осторожны с этим. С >

Обновить как исправлено комментарием

Имя хоста дает имя компьютера, а не имя веб-сайта, мое плохое. Мой результат на локальном компьютере

gethostname()         = my-bacbook-pro     (which is my machine name)
$_SERVER['host_name'] = mysite.git         (which is my website name)

Ответ 5

php_uname, но я не уверен, какое имя хоста вы хотите иметь имя хоста клиента или сервера.

плюс вы должны использовать подход на основе файлов cookie

Ответ 6

Я запускаю PHP версию 5.4 на общем хостинге, и оба они оба возвращают те же результаты:

php_uname('n');

gethostname();