Is it possible that to identify a network adapter by only its MAC Adress?
I know that it is possible to find out the vendor, but i need the exact Name/Description, e.g. "Intel Ethernet I217-LM".
Update (more info):
Let's say I have 10 MAC addresses. I want to paste them into a (online) tool that gives me then name of the adapter.
Is this even possible? The 6 first digits are vendor specific, I know that but, is there any other scheme?
No, the MAC Address is simply a unique Identifier for each network adapter. You can think of it as a unique random number coded directly into the networking hardware, so that it can never change. You can figure out the vendor, because "blocks" of MAC addresses are assigned to each vendor, in order to ensure that no one gets a card with a duplicate address. To which models the addresses are assigned is up to the vendor, and it is highly unlikely that a vendor will publish such a list.
In order to obtain the information you need, you will have to use a OS/Programming language specific function. If you can tell us what environment you are working on, maybe someone can help you figure out how to get the information.
Related
I'm looking for a solution to find out about the MAC number of a user using asp.net website. I know you can get an IP address (don't know why but it can't be complicated) but can i find out the MAC address having the IP?
Edit: I mean programmatically (not manually) in .NET
The IP address is necessary for routing the communication between the client system requesting the information and the server. You can get it, because the IP address is pulled from a lower level in the TCP/IP stack (level 3 I believe). The MAC Address isn't necessary for any of this and hence it isn't included in the communication between the client and the server.
If your site is trusted, you can do this in IE:
http://www.devarticles.com/c/a/JavaScript/Advanced-JavaScript-with-Internet-Explorer-Retrieving-Networking-Configuration-Information/1/
I wouldn't expect it to work for any typical visitors, just users who's systems you already control, like on your local network. There may be a second way in IE if you can find a common activex that generates a guid using CoCreateGuid. It returns the mac address in part of the guid. I wouldn't bet on finding one that's commonly installed though.
no chance to get this sorry.
Even if you could it would not make sense to attempt to get this, when I access a website on the internet my MAC address never leaves my home network.
Ok if the user was on the same LAN say in a company intranet for example this could be determined by having the ip address and using command line tools like arp.
ARP stands for Address Resolution Protocol and it can be used for finding a host's link layer (hardware) address when only its Internet Layer (IP) or some other Network Layer address is known.
Java 6 has a NetworkInterface#getHardwareAddress() method which usually returns the MAC address of the computer in question. You could create a small Java applet to communicate with your web server to obtain the MAC address, though there are ways and means of spoofing a MAC address.
The MAC address you get might not be practical to use. If someone has multiple network adapters then they also have multiple MAC addresses. And it's not uncommon anymore that someone has two networks. (For example, bluetooth, regular cabled and WiFi would already be three.)
A MAC address is just for identification and it can be requested. The Address Resolution Protocol is created for this purpose. By arping you can get a MAC address. Unfortunately, this only works on local networks, not on the Internet. I think that by using IPv6, you might also have a few options. Although I think it would still be limited to just a local system.
Getting the MAC address of your visitor might be considered inappropriate and perhaps even criminal since a MAC address is generally used as an unique identifier. This information could be misused by hackers, especially when the hacker manages to gain physical access to the users network. It would allow him to impersonate the user. Your site might make some security specialists very unhappy...
At http://www.ipaddresslocation.org/find-mac-address.php there's a Java applet which they claim will work. It doesn't on my system with Google Chrome, though.
I have a similar problem (I'm using the client device MAC address as a key to target different content at different devices). This thread has been useful. Given that there seems to be no way to do this implicitly I have instead included the MAC address as one of the parameters passed by the client to the web service.
(N.B. This is not a generic answer, it only makes sense where the client and server are tightly integrated and where there is scope for passing data with the call.)
I don't think this is possible on any platform.
I have a website and I can collect all kinds of information (log) of the viewer including - but not limited to: IP, Country, City, OS, Date and Time. (If It's a mobile device, it's MobileOS, Device Model etc.)
However, logs having the same IP adresses does not seem to be useful to identify the viewer since the website is mostly used by the students of my university and they have the same IP address as that of the university's WiFi.
I had the idea to somehow get the MAC Address of the viewer's device, but it does not seem applicable in ASP.NET. (There is a JavaScript solution,but it works only for IE.)
Is there any way to obtain the MAC address of my users? Or is there any other way to uniquely identify users on my website that I could perhaps use?
Thanks in advance.
You can't get the MAC address because there are lots of machines (and interfaces) between you and the viewer of the website. The IP address, as you're finding, isn't unique because the visitor might be behind a NAT, or might change IP addresses because of lease renewal or temporary assignment.
There are other ways to do fingerprinting, if you're just trying to identify machines (and the users, and the sessions): https://panopticlick.eff.org/static/browser-uniqueness.pdf
You stop short of explaining why you want to get the MAC address. What is it that you want to accomplish?
I'm doing a project: the goal is to find features detecting a hotspot, but I have no training set or test set for development and estimation of methods yet.
As far as I understand, there are 2 ways to build the sets:
to get a list of some of U.S. hotspots;
to find a function that checks if given IP address is connected with some hotspot (with some measure of certainty).
So what I wonder:
is there any U.S. Hotspots IP dataset?
are there any other ways or technologies to find out whether a given IP address is assigned to a Hotspot?
Any helpful ideas appreciated (criticism is appreciated too).
A few tips.
You actually want to use MAC address, not IP. IPs can change quite a bit easier than MAC addresses.
There are at least 2 sets of mac/location data sets, Skyhook and Google. Skyhook has a web site where you can learn more about their SDK, I don't think Google allows direct access of their. The cost to use Skyhook varies, but in general it is around $0.50 a device, depending on a large number of factors.
I am trying to use Boost for some IPv6 and multicast network communication. I need to construct an IPv6 multicast socket that uses a specific network interface index.
I was able to find the correct multicast option to set the network interface index in boost/asio/ip/detail/socket_option.hpp:
explicit multicast_request(const boost::asio::ip::address_v6& multicast_address, unsigned long network_interface = 0)
The problem is, I don't know how to find the correct value for the "network_interface" parameter. Is there a way to get the network_interface value using a local IPv6 address that I can provide? I looked in the documentation and examples, but couldn't find anything.
-- Dylan
Each platform provides APIs to enumerate the network interfaces, e.g. getifaddrs for many Unixes and GetAdaptersAddresses for Windows. Note on Windows there is a separate numerical space for IPv4 and IPv6 adapters which makes the API call if_nametoindex quite confusing.
You may wish to inspect the methods I employed in OpenPGM for portability, considering Windows doesn't really have useful adapter names:
http://code.google.com/p/openpgm/source/browse/trunk/openpgm/pgm/getifaddrs.c
http://code.google.com/p/openpgm/source/browse/trunk/openpgm/pgm/nametoindex.c
http://code.google.com/p/openpgm/source/browse/trunk/openpgm/pgm/indextoaddr.c
http://code.google.com/p/openpgm/source/browse/trunk/openpgm/pgm/indextoname.c
I don't think there's a platform-independent way to figure this out, just as there is no portable solution to enumerating the local addresses.
On Linux, you can find what you want in the second column of /proc/net/if_inet6, which is also available more robustly through the rtnetlink(7) interface.
I hear that the creator of the melissa worm was convicted based on the fact that the GUIDs generated could be linked back to a MAC Address of a computer he used.
How hard is it to do this? And what data do they need other than the GUID? Like the MAC Address itself or the time it was created?
That relates to a specific version 1 UUID included in the office document that contained the macro virus, this was becuse it came from UuidCreate/Sequential which did contain MAC info;
For security reasons, UuidCreate was
modified so that it no longer uses a
machine's MAC address to generate
UUIDs. UuidCreateSequential was
introduced to allow creation of UUIDs
using the MAC address of a machine's
Ethernet card.
It depends on how and by what OS/library that GUID was generated. As of Windows and its standard UuidCreate() function:
The UuidCreate function generates a
UUID that cannot be traced to the
ethernet address of the computer on
which it was generated. It also cannot
be associated with other UUIDs created
on the same computer.
Here: http://msdn.microsoft.com/en-us/library/aa379205(v=vs.85).aspx
Whether or not you can identify someone based on a UUID (GUID) depends entirely on the implementation.
RFC 4122 (the RFC for UUID) has three reference implementation (see http://www.ietf.org/rfc/rfc4122.txt) the first of which uses the MAC-address in the unique node identifier, but the other two uses random numbers instead. I've seen both in libraries and sometimes libraries have a switch between these methods, so the only way to know for sure is to read the documentation/source for the specific library you use for UUID/GUID generation.
Usually the MAC-address is hashed, so you could compare the original to the generated, but not decypher the original MAC-address only from knowing the UUID. So far I have only seen UUID generators that don't hash the timestamp so that is easier to find. There is a simple tool that can decode a UUID for you (see http://linux.die.net/man/1/uuid)