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

Кто-то может дать мне некоторые подсказки по взятию MAC-адреса пользователя из Запроса HTTP?

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

26
задан Community 4 February 2014 в 20:59
поделиться

3 ответа

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

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

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

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

40
ответ дан 28 November 2019 в 07:22
поделиться

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

0
ответ дан 28 November 2019 в 07:22
поделиться

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

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

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

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

2
ответ дан 28 November 2019 в 07:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: