How can I get a MAC address from an HTTP request?

二次信任 提交于 2019-11-26 22:50:13
rioki

It depends on your network setup. But probably no.

Here is a short refresher on Ethernet and IP. The MAC address is a unique address of the network card. It is used to identify for which user on the network segment a packet is. You can use ARP to get a MAC address for an IP address. But this works as expected only if you are on the same network segment.

So the question is, what is a network segment? It depends on the technology you use, but here are the common cases. An entire wireless network is a network segment. Every user on the network can talk via Ethernet to every other user. On wire based networks, this depends on the hardware. If you have good old BNC or a hub you have one network segment with all uses. Again each user can talk to any other. With a switch in the network a network segment is only cable that connects you to the switch. Here you can only talk to the switch via Ethernet. Every other user needs at least IP.

Too bad that most situations with HTTP, which builds on TCP/IP, you are 99.99% never in the same network segment as your user. You can use ARP, but will only get the MAC address of the first hop. It get's better, depending on your hardware, you may not even be on an IP network that is based on Ethernet; ATM for example...

I don't think there is a way to do it in ASP.NET.
MAC is a property of a TCP packet, and on HTTP level there're no packets or MACs (for example, a single HTTP request might be assembled of several TCP packets).

You could try using a packet sniffer (like WireShark) to capture TCP packets, and then analyze them to extract MACs and map them to HTTP requests.

Anyway, you won't get any useful data unless the user is in the same network segment as your server.

UPD. As was pointed out in the comments, I mixed up the network layers. MAC address is a property of Ethernet frame, not a TCP packet.
The conclusion is still correct, however.

This is not possible, unless you intend to create an ActiveX component, in which case it will only work on IE.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!