Как получить MAC-адрес компьютера посетителей в веб-приложении ASP.NET?

StackOverflow https://stackoverflow.com/questions/1356962

  •  20-09-2019
  •  | 
  •  

Вопрос

В веб-приложении ASP.NET (C#) я могу легко получить IP-адрес ПК посетителей, но как получить MAC-адрес ПК посетителей в веб-приложении ASP.NET?

И это приложение ASP.NET работает во внутренней интрасети нашей компании, и посетители также находятся в той же внутренней интрасети нашей компании.

Это было полезно?

Решение

MAC-адрес не является частью IP-заголовок (или любые другие протоколы выше этого) и, следовательно, недоступны, если вы видите только HTTP-трафик.

РЕДАКТИРОВАТЬ (после обновления ОП):Поскольку клиенты и серверы находятся в одной внутренней сети, не лучше ли получить имя хоста по IP-адресу, а не по MAC-адресу?Вы можете легко найти имя хоста по IP-адресу.

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

Ответ, который сразу приходит на ум, заключается в том, что это возможно только в том случае, если вы напишете элемент управления ActiveX, который запускается в клиентском браузере и получает эту информацию от вашего имени.С другой стороны, это может быть возможно с помощью JavaScript на клиенте, если javascript может создать экземпляр COM-объекта, который будет получать информацию.Единственный другой способ, который я могу придумать, — это использовать службу Windows, которая выполняет запрос ARP после захвата IP-адреса.

Вы не можете легко сделать это.Там являются такие протоколы, как ARP, которые позволяют осуществлять преобразование между MAC-адресами и IP-адресами, но этот трафик обычно проходит за брандмауэром и поэтому недоступен для вас на общедоступном веб-сайте.

В интрасети вы, возможно, сможете что-то сделать, но не через ASP.NET.Вам придется использовать другие механизмы для сбора этой информации, но такие инструменты (например,анализаторы пакетов), как правило, недоступны разработчикам и могут противоречить корпоративной политике безопасности.

Поскольку вы находитесь в одной подсети, вы можете П/вызов GetIpNetTable чтобы получить таблицу ARP веб-сервера.Если вы сделаете это в режиме реального времени, никакой дополнительной работы не потребуется — поскольку вы разговариваете с клиентом, у вас будет информация ARP.В противном случае вам придется создать запрос ARP или некоторый IP-трафик (скажем, IP-трафик).инг), чтобы получить его в кеше - и обратите внимание, что из-за DHCP и других сетевых капризов (например, выключения машины) возможно, что позднее преобразование IP в MAC даст другой ответ.

Также обратите внимание, что любые внешние клиенты (т. е. те, которые подключены к маршрутизатору) просто не будут отображаться в стол - так что будьте готовы иметь дело и с этим.Если по какой-то причине вам нужен для них MAC, технически это MAC вашего маршрутизатора.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top