Кто-то может дать мне некоторые подсказки по взятию MAC-адреса пользователя из Запроса HTTP?
Пользователи будут снаружи моей сети.
Это зависит от настроек вашей сети. Но, наверное, нет.
Вот краткое напоминание об Ethernet и IP. MAC-адрес - это уникальный адрес сетевой карты. Он используется, чтобы определить, для какого пользователя в сетевом сегменте принадлежит пакет. Вы можете использовать ARP, чтобы получить MAC-адрес для IP-адреса. Но это работает должным образом, только если вы находитесь в одном сегменте сети .
Итак, вопрос в том, что такое сетевой сегмент? Это зависит от технологии, которую вы используете, но вот общие случаи. Вся беспроводная сеть - это сегмент сети. Каждый пользователь в сети может общаться через Ethernet с любым другим пользователем. В проводных сетях это зависит от оборудования. Если у вас есть старый добрый BNC или концентратор, у вас есть один сетевой сегмент для всех видов использования. Опять же, каждый пользователь может разговаривать с любым другим. С коммутатором в сети сегмент сети - это только кабель, который соединяет вас с коммутатором.Здесь вы можете разговаривать с коммутатором только через Ethernet . Каждому другому пользователю нужен как минимум IP.
Жаль, что в большинстве ситуаций с HTTP, который основан на TCP / IP, вы на 99,99% никогда не находитесь в том же сегменте сети, что и ваш пользователь. Вы можете использовать ARP, но получите MAC-адрес только первого прыжка. Будет лучше, в зависимости от вашего оборудования, вы можете даже не быть в IP-сети, основанной на Ethernet; Банкомат например ...
Это невозможно, если только вы не собираетесь создать ActiveX компонент, в этом случае он будет работать только в IE.
Я не думаю, что есть способ сделать это в ASP.NET.
MAC - это свойство TCP-пакета, а на уровне HTTP нет пакетов или MAC-адресов (например, один HTTP-запрос может быть собран из нескольких TCP-пакетов).
Вы можете попробовать использовать сниффер пакетов (например, WireShark) для захвата TCP-пакетов, а затем проанализировать их, чтобы извлечь MAC-адреса и сопоставить их с HTTP-запросами.
В любом случае вы не получите никаких полезных данных, если пользователь не находится в том же сегменте сети, что и ваш сервер.
UPD. Как было указано в комментариях, я перепутал сетевые уровни.
MAC-адрес является свойством кадра Ethernet , а не TCP-пакета.
Однако вывод все же верен.