Получить MAC пользователя сайта ASP.NET - PullRequest
4 голосов
/ 27 августа 2009

Я ищу решение, чтобы узнать номер MAC пользователя, использующего сайт asp.net. Я знаю, что вы можете получить IP-адрес (не знаю почему, но это не может быть сложно), но могу ли я узнать MAC-адрес, имеющий IP?

Редактировать: я имею в виду программно (не вручную) в .NET

Ответы [ 7 ]

4 голосов
/ 27 августа 2009

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

2 голосов
/ 27 августа 2009

Если вашему сайту доверяют, вы можете сделать это в IE:
http://www.devarticles.com/c/a/JavaScript/Advanced-JavaScript-with-Internet-Explorer-Retrieving-Networking-Configuration-Information/1/

Я бы не ожидал, что он будет работать для обычных посетителей, только для пользователей, чьи системы вы уже контролируете, например, в вашей локальной сети. В IE может быть второй путь, если вы можете найти общий activex, который генерирует guid с помощью CoCreateGuid. Он возвращает MAC-адрес в части руководства. Я бы не стал ставить на то, чтобы найти тот, который обычно устанавливается.

2 голосов
/ 27 августа 2009

нет шансов получить это извините.

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

Хорошо, если пользователь находился в той же локальной сети, скажем, в интрасети компании, например, это можно определить по IP-адресу и использованию инструментов командной строки, таких как arp.

ARP означает Протокол разрешения адресов, и его можно использовать для нахождения адреса канального уровня (аппаратного) узла, когда известен только его адрес Интернет-уровня (IP) или какой-либо другой адрес сетевого уровня.

1 голос
/ 28 августа 2009

MAC-адрес, который вы получаете, может быть непрактичным в использовании. Если у кого-то есть несколько сетевых адаптеров, у них также есть несколько MAC-адресов. И уже не редкость, когда у кого-то есть две сети. (Например, bluetooth, обычный кабельный и WiFi уже будет три.)

MAC-адрес только для идентификации, и его можно запросить. Протокол разрешения адресов создан для этой цели. С помощью arping вы можете получить MAC-адрес. К сожалению, это работает только в локальных сетях, а не в Интернете. Я думаю, что при использовании IPv6 у вас также может быть несколько вариантов. Хотя я думаю, что она все еще будет ограничиваться только локальной системой.

Получение MAC-адреса вашего посетителя может считаться неуместным и, возможно, даже преступным, поскольку MAC-адрес обычно используется в качестве уникального идентификатора. Хакеры могут неправильно использовать эту информацию, особенно когда хакеру удается получить физический доступ к сети пользователей. Это позволило бы ему выдать себя за пользователя. Ваш сайт может сильно огорчить некоторых специалистов по безопасности ...

На http://www.ipaddresslocation.org/find-mac-address.php есть Java-апплет, который, как они утверждают, будет работать. Однако в моей системе он не работает с Google Chrome.

1 голос
/ 27 августа 2009

Java 6 имеет метод NetworkInterface#getHardwareAddress(), который обычно возвращает MAC-адрес рассматриваемого компьютера. Вы можете создать небольшой Java-апплет для связи с вашим веб-сервером для получения MAC-адреса, хотя существуют способы и средства подмены MAC-адреса.

0 голосов
/ 14 июля 2014

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

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

0 голосов
/ 27 августа 2009

Я не думаю, что это возможно на любой платформе.

...