Как получить имя клиентской машины с помощью php/javascript

Мне нужно получить имя машины и IP-адрес с помощью php/javacript - когда я запускаю веб-страницу на локальном хосте, я получаю правильное имя компьютера и IP-адрес, но когда я помещаю страницу на веб-сервер и запускаю то же самое онлайн - код возвращает только IP-адрес клиентской машины, а НЕ имя машины.

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

Итак, я пробовал тремя способами:

Способ 1 (php):

gethostbyaddr($_SERVER['REMOTE_ADDR']); -- return the ip


getenv('COMPUTERNAME'); -- return the ip only

Способ 2 (php):

echo shell_exec('echo  %computername%'); -- return none instead of client computer name

Способ 3 (javascript):

alert(window.location.hostname);

Ни один из них не работает.

Я ищу вашей помощи.

Спасибо.

PHP на стороне сервера...
brombeer 03.04.2019 12:44

Я не верю, что имя компьютера отправляется на сервер по умолчанию, вероятно, оно работало локально, потому что сервер и клиент находились на одной машине. Я также не уверен, что есть надежный способ получить его от клиента через js, поэтому ответ может быть таким: вы не можете.

Jonnix 03.04.2019 12:45
PHP вернет имя машины, на которой размещен ваш код, а не агент машины, обращающийся к нему. Вы должны реконструировать код.
FirstIndex 03.04.2019 12:46

так как я могу это сделать? Этот код возвращает IP-адрес, автоматически получая имя компьютера, когда я запускаю на локахосте. Но не онлайн. $ip = gethostbyname(getenv('COMPUTERNAME')); echo '<br>'.getenv('ИМЯ КОМПЬЮТЕРА').' преобразовано в '.$ip;

Komati 03.04.2019 12:48

Но должен же быть способ получить имя компьютера, не так ли?

Komati 03.04.2019 12:51

Это получит имя сервера (если установлено), а не имя клиента, и может не возвращаться с ожидаемого сетевого интерфейса. Вопрос в том, для чего вам это фактическинужно?

Jonnix 03.04.2019 12:51

Не могли бы вы рассказать мне, как реконструировать код?

Komati 05.04.2019 05:23

Собственно вопрос, для чего вам это нужно? Мне нужно получить только имя машины агента. Я получаю IP-адрес машины агента, но этот IP-адрес не является фиксированным, поэтому я хочу получить некоторый фиксированный атрибут от машины агента, чтобы затем я мог автоматически обнаруживать машину и отображать некоторую информацию соответственно.

Komati 05.04.2019 05:26

Как говорят Джонникс и FirstIndex, вы не можете получить имя компьютера через PHP или Javascript. Судя по вашему комментарию, лучше всего использовать файл cookie или локальное хранилище, чтобы установить уникальный идентификатор для этой машины. Предостережение, если пользователь очищает хранилище или использует другой браузер. Однако наличие какого-либо логина пользователя помогает компенсировать это.

Viking NM 25.02.2020 17:30
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
9
3 095
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Среда на сервере явно отличается от вашей локальной машины.

Попробуйте var сбросить глобальный SERVER, чтобы узнать, к какой информации у вас есть доступ:

var_dump($_SERVER);

и что потом ? как это помогает OP выяснить имя клиентской машины?

YvesLeBorg 03.04.2019 12:50

это помогает увидеть, какие данные они могут получить, и соответствующим образом скорректировать свой код/ожидания.

Mr_DW_Brighton 03.04.2019 12:53

Спасибо, я использую ip через $device_id = gethostbyaddr($_SERVER['REMOTE_ADDR']);ME');

Komati 10.04.2019 06:44

Другие вопросы по теме