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

Can someone give me some pointers on picking up the user’s MAC address from an HTTP request?

The users will be from outside my network.

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

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…

Method 2

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.

Method 3

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


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x