узнать имя компьютера php
Получить имя компьютера клиента
Я получаю IP-адрес клиента (веб-сайта пользователя). Теперь я хотел бы сделать еще один шаг, зная имя компьютера пользователя. До сих пор мои исследования ничем не помогли мне в получении этой информации.
Можно ли использовать IP-адрес пользователя или какие-либо другие средства для получения имени компьютера моего посетителя с помощью PHP?
Обратите внимание, что это даст вам имя хоста, из которого пришел запрос, в соответствии с обратным DNS.
Невозможно запустить простой php на сервере. Было бы проблемой безопасности / конфиденциальности, чтобы узнать подробности о клиенте, такие как имя компьютера, адрес mac, содержимое его диска.
Для этого вам нужно какое-то приложение, запущенное на машине клиента.
Если вы ссылаетесь на имя хоста (отображаемое, например, командой hostname в linux) компьютера, выполняющего запрос:
Эта информация не включена в HTTP-запрос. (То есть, PHP не может понять.)
Вы можете сделать обратный поиск DNS, но это, вероятно, не так, как вы хотите.
Единственное, что вы можете сделать, это попытаться получить DNS-имя для клиента. «Имя компьютера» – это созданная Windows вещь. Просто вызовите встроенную функцию gethostbyaddr() с IP-адресом клиента. Однако это не всегда (вряд ли когда-либо) работает.
Вы можете это сделать
«REMOTE_HOST» – имя хоста, с которого пользователь просматривает текущую страницу. Обратный поиск dns основан на REMOTE_ADDR пользователя.
Примечание. Ваш веб-сервер должен быть настроен для создания этой переменной. Например, в Apache вам понадобятся HostnameLookups. Внутри httpd.conf для его существования. Как сказал Дэвид, вы также можете использовать. gethostbyaddr ()
Pls проходит через все комментарии в URL-адресе, прежде чем использовать функцию.
Это все, что вы могли бы использовать только PHP (вы можете попробовать это, но я не думаю, что это то, что вам действительно нужно):
Можете ли вы получить имя пользователя Windows (AD) в PHP?
У меня есть веб-приложение PHP в интрасети, которое может извлечь IP и имя хоста текущего пользователя на этой странице, но мне было интересно, есть ли способ получить / извлечь их имя Active Directory / Windows, а также. Это возможно?
Решение
Проверить AUTH_USER переменная запроса. Оно будет пустым, если ваше веб-приложение разрешает анонимный доступ, но если на вашем сервере используется базовая аутентификация или встроенная проверка подлинности Windows, оно будет содержать имя пользователя, прошедшего проверку подлинности.
В домене Active Directory, если на ваших клиентах запущен Internet Explorer и разрешения вашего веб-сервера / файловой системы настроены правильно, IE автоматически отправит свои учетные данные домена на ваш сервер и AUTH_USER будет MYDOMAIN\user.name без необходимости пользователям явно входить в ваше веб-приложение.
Другие решения
Я использовал это, чтобы получить мой пользователь и домен:
$user вернет значение как: DOMAIN\username в нашей сети, а затем это просто случай удаления DOMAIN\ из строки.
До сих пор это работало в IE, FF, Chrome, Safari (протестировано).
Active Directory [в основном] соответствует стандарту LDAP.
Если вы используете Apache в Windows, вы можете установить mod_auth_sspi из
Инструкции находятся в файле INSTALL, и есть пример whoami.php. (Это просто случай копирования файла mod_auth_sspi.so в папку и добавления строки в httpd.conf.)
Информация основана на сеансах, поэтому единый вход (ish) возможен даже в Firefox …
Вы могли бы, вероятно, аутентифицировать пользователь в Apache с mod_auth_kerb требуя аутентифицированный доступ к некоторым файлам … Я думаю, что таким образом, имя пользователя также должно быть доступно в переменных среды PHP где-то … вероятно, лучше проверить с как только вы получите это работает.
Нет. Но то, что вы можете сделать, это разрешить администратору Active Directory включить LDAP, чтобы пользователи могли поддерживать один набор учетных данных.
Проверьте исправленный модуль аутентификации NTLM для Apache
https://github.com/rsim/mod_ntlm
Основан на модуле аутентификации NTLM для Apache / Unix
http://modntlm.sourceforge.net/
Если вы ищете для получения IDSID / имени пользователя удаленного пользователя, используйте:
Вы получите что-то вроде
iamuser1-mys.corp.company.com
Отфильтруйте оставшуюся часть домена, и вы сможете получить только IDID.
PHP и имя компьютера клинта
Можно ли с помощью PHP узнать имя компьютера посетителя? Я смотрел phpinfo, но там только имя компьютера сервера в переменных среды.
Имя NetBIOS вы не узнаете, так как вы не подключитесь к портам компьютера пользователя.
Ваша задача решаетсся так: сгенерируйте и поставьте в ПОСТОЯННЫЙ куки пользователю некий уникальный идентификатор (md5(uniqid(»)) и отсеживайте именно этот идентификатор.
Спасибо за ссылочку, хотя я говорю про виндовое, но узнать по айпишнику хозяев тоже штука полезная. А хотел я это для маленького эксперимента. Хочу создать код, который при помощи сессионной переменной(точнее массива) сохраняет в базху данных или в файл путь, по которому по сайту передвигался кажды посетитель. Но чтобы имя массива было уникальным я хоте испотзовать, как вы догадались, Netbiosовское имя + date(). Впрочем, это конечно не проблема, подумаю, как будет получше это заменить.
Нет, не так!
Сессия здесь вам вообще не поможет, так как вы в PHP не можете «поймать» момент ее завершения.
Пишите просто в файл:
Выполняйте эту функцию на КАЖДОЙ странице своего сайта. Она будет писать файл
user_path.txt, строчки которого состоят из уникального id пользователя и пути
на котором он был. Открывайте файл экселем и анализируйте.
, я что-то неправильно делаю?
Мой Апач выдаёт:
Fatal error: Function name must be a string in d:\gkh\uniq.php on line 3
>>>Сессия здесь вам вообще не поможет, так как вы в PHP не можете «поймать» момент ее завершения.
Как не поможет? Ведь сессия заканчивается с закрытием браузера? разве нет? Пока бразузер не закрыт мой код спокойно закидывает в массив путь посетителя и вписывает в файл:
так что я не совсем понимаю, в чём он, с вашей точки зрения, не подходит. если вас не затруднит поясните в чём я допускаю ошибку, ведь на практике он работает. передо мной три текстовых файла, которые он создал.
Я же вам написал код. Чем он вас не устраивает?
> какие сферы интернет-бизнеса ожидают развитие не только в крупных мегаполисах, но и небольших городах России
Бум ADSL соединений. То есть все, что связано с широким каналом у пользователя, а именно:
— VoIP, в первую очередь
— Мультимдийный контент в сети (музыка, фильмы, ТВ)
— Как следствие широкополосного канала, необходимость защиты пользователя
— и др.
Как я могу прочитать имя компьютера / компьютера клиента из браузера?
Как я могу прочитать имя компьютера/компьютера клиента из браузера?
Возможно ли использование JavaScript и / или ASP.NET?
13 ответов
вы можете сделать это с IE ‘иногда’, как я сделал это для внутреннего приложения в интрасети, которая только в IE. Попробуйте следующее:
это может или не может потребовать определенной настройки параметров безопасности в IE, а также разрешить браузеру доступ к объекту ActiveX.
вот ссылка на дополнительную информацию о WScript:Дополнительная Информация
браузер, операционная система, цвета экрана, разрешение экрана, версия Flash и поддержка Java должны быть обнаружены из JavaScript (и, возможно, еще несколько). Однако имя компьютера невозможно.
EDIT: не возможно во всех браузерах, по крайней мере.
Ну, вы можете получить ip-адрес, используя asp.net, затем выполните обратный поиск DNS на ip, чтобы получить имя хоста.
невозможно получить имя компьютера пользователя с помощью Javascript. Вы можете получить все подробности о браузере и сети. Но не более того.
Как кто-то ответил на один из предыдущих вопросов сегодня.
Я уже сделал одолжение посетить ваш сайт, может быть, я вернусь или сослаться на других друзей.. Я также сказал вам, где я и какую ОС, браузер и разрешение экрана я использую почему вы хотите знать цвет моего нижнего белья? 😉
нет эти данные не подвергаются. Единственные доступные данные-это то, что предоставляется через HTTP-запрос, который может включать их ОС и другую такую информацию. Но уж точно не имя машины.
попробуйте получить имя клиентского компьютера в Mozilla Firefox, используя приведенный ниже код.
кроме того, тот же кусок кода можно поместить в качестве расширения, и он может вызываться с вашей веб-страницы.
пожалуйста, найдите пример кода ниже.
нет способа сделать это, так как JavaScript не имеет доступа к имени компьютера, файловой системе и другой локальной информации. Это часть спецификации JavaScript. Безопасность-это главная цель.
Erm есть ли причина, по которой вы не можете просто использовать HttpRequest? Это будет на стороне сервера, но вы можете передать его на javascript, если вам нужно?
одна проблема с этим заключается в том, что он будет работать только в среде интрасети, иначе он просто заберет маршрутизатор пользователей или прокси-адрес.
Как я могу прочитать имя компьютера / компьютера клиента из браузера?
Как я могу прочитать имя компьютера / компьютера клиента из браузера?
Возможно ли использовать JavaScript и / или ASP.NET?
9 ответов
Вы можете сделать это с IE «иногда», как я сделал это для внутреннего приложения в интрасети, которое является только IE. Попробуйте следующее:
Может также потребоваться или не потребоваться какая-то особая настройка параметров безопасности в IE, чтобы браузер мог получить доступ к объекту ActiveX.
Вот ссылка на дополнительную информацию о WScript: Дополнительная информация
Хм, есть ли причина, по которой вы не можете просто использовать HttpRequest? Это будет на стороне сервера, но вы можете передать его в JavaScript, если вам нужно?
Нет никакого способа сделать это, поскольку у JavaScript нет доступа к имени компьютера, файловой системе и другой локальной информации. Безопасность является главной целью.
Обновленная версия от Келси:
Чтобы сохранить значение, добавьте эти элементы управления:
Где вы также можете позвонить сзади так:
Браузер, операционная система, цвета экрана, разрешение экрана, версия Flash и поддержка Java должны быть обнаружены с помощью JavaScript (и, возможно, еще нескольких). Однако имя компьютера невозможно.
РЕДАКТИРОВАТЬ: не возможно во всех браузерах по крайней мере.
Попробуйте получить имя клиентского компьютера в Mozilla Firefox, используя приведенный ниже код.
Кроме того, тот же кусок кода может быть добавлен в качестве расширения, и его можно вызвать с вашей веб-страницы.
Пожалуйста, найдите образец кода ниже.
Невозможно получить имя компьютера пользователя с помощью Javascript. Вы можете получить все подробности о браузере и сети. Но не более того.
Как кто-то ответил сегодня на один из предыдущих вопросов.