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

Как я могу получить MAC-адрес из HTTP-запроса?

Может ли кто-нибудь дать мне несколько указателей на сбор MAC-адреса пользователя из HTTP-запроса?

Пользователи будут за пределами моей сети.

4b9b3361

Ответ 1

Это зависит от вашей настройки сети. Но, вероятно, нет.

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

Итак, вопрос в том, что такое сегмент сети? Это зависит от технологии, которую вы используете, но здесь есть общие случаи. Вся беспроводная сеть является сегментом сети. Каждый пользователь сети может разговаривать через Ethernet с каждым другим пользователем. В проводных сетях это зависит от оборудования. Если у вас хороший старый BNC или концентратор, у вас есть один сегмент сети со всеми видами использования. Снова каждый пользователь может разговаривать с любым другим. С коммутатором в сети сегмент сети представляет собой только кабель, который соединяет вас с коммутатором. Здесь вы можете разговаривать только с коммутатором через Ethernet. Каждому другому пользователю требуется как минимум IP.

Слишком плохо, что в большинстве ситуаций с HTTP, который построен на TCP/IP, вы никогда не находитесь в том же сегменте сети, что и ваш пользователь, 99,99%. Вы можете использовать ARP, но получите только MAC-адрес первого хопа. Это становится лучше, в зависимости от вашего оборудования, вы даже не можете быть в IP-сети, основанной на Ethernet; ATM, например...

Ответ 2

Это невозможно, если вы не собираетесь создавать компонент ActiveX, и в этом случае он будет работать только в IE.

Ответ 3

Я не думаю, что есть способ сделать это в ASP.NET.
MAC является свойством TCP-пакета, а на уровне HTTP нет пакетов или MAC-адресов (например, один HTTP-запрос может быть собран из нескольких пакетов TCP).

Вы можете попробовать использовать сниффер пакетов (например, WireShark) для захвата пакетов TCP, а затем проанализировать их, чтобы извлечь MAC-адреса и сопоставить их с HTTP-запросами.

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

UPD. Как отмечалось в комментариях, я перепутал сетевые уровни. MAC-адрес является свойством Кадр Ethernet, а не TCP-пакет.
Однако заключение остается верным.