How to discover the mac address of machines in a network?
I need to discover the machines that are available just with only BIOS installed (NO Operating System)
And I need to find the mac address of such machines that are up.
|
How to discover the mac address of machines in a network? I need to discover the machines that are available just with only BIOS installed (NO Operating System) And I need to find the mac address of such machines that are up. | |||
feedback
|
|
If the machines are not powered up, this is impossible. If they are powered up, I would guess this is impossible as well, as you need a minimal network stack to at least answer things like ARP queries etc, which isn't working without an OS installed. What might work (I don't know and can't test right now) is that the NIC and the switch communicate when the NIC is plugged in or powered up and the switch learns the MAC address this way. If this is the case you would need a manageable switch and query it for connected mac addresses. | |||||
feedback
|
|
You will have to access the information available on your managed switches. If you have an unmanaged network, I dont see a way to do that. This is assuming the target computers are capable of Wake On LAN. In this case, link to the server is established (look for the flashy link LED), and the network card is listening to WOL broadcasts. AFAIK, the card does not answer to anything in this state. If there is no WOL, the card most probably is off (no Link LED), and it wont work at all. | ||||
|
feedback
|
| |||
|
feedback
|
|
From a Unix machine, listening to the no-OS computers on the same LAN, and if possible via a Hub (not a Switch), you can try
Also you may want to try | |||
|
feedback
|
|
You can use nmap to do a very quick ARP scan using the following syntax.
This uses ARP ping (only ARP requests, no ICMP, UDP or TCP, no port scanning) to scan the specified IP range and record the IP/MAC/Hostname responses in an xml file (nmap.xml). I wrote a PS script that munges the xml and spits out a csv. This also filters out the down hosts. I find this easier to use in Excel than the xml. Here's the script if anyone is interested.
| |||||||||||
feedback
|
|
The basic problem here is that this is Layer 2 information, so only switches see it. Some switches will provide an interface that lets you peek at this info, but if they don't the only way to get it is to intercept in the physical layer, by eg installing a hub between the switch. If you're using managed switches this information is likely available from the switch. Some end-user integrated routers/switches (such as the kind that often package ADSL modems as well) will sometimes have a DHCP client list which includes MAC addresses. If you're using unmanaged switches, and you really want to know this info, I recommend you buy a hub, and temporarily replace the switch with it. You can then connect a computer running wireshark to the hub and capture ARP packets to record MAC addresses. Alternately you could use Echolot to do this for you - it selectively tracks ARP packets and builds a MAC address database. | |||
feedback
|
|
scan with nmap all network and then check the arp table (arp -a in linux distro's) | |||
|
feedback
|
|
As others have said, if you have unmanaged switches, or BootP/PXE, there's no easy way to get the MACs of machines with no OS. If your running machines are running windows, it's easy to script (usually via WMI) There are a bunch of examples here: http://gallery.technet.microsoft.com/ScriptCenter/en-us/site/search?f[0].Type=SearchText&f[0].Value=MAC+address&x=0&y=0 | |||
|
feedback
|
|
I was going to suggest switch MAC address table, but someone's already covered that one above. If any of the computers are running an OS and have an IP addresses, you can connect into the same LAN, you could use NMAP (or a GUI version like Zenmap) from http://nmap.org/... if you run this on the same LAN, you should get MAC address info for any machines that respond. It would be useful to understand more about why you need to get the MAC addresses, in case there is a better way of achieving the same result. | |||
|
feedback
|
|
You can collect ARP information with for example a continuously running arpalert. With that, you will have the set of ARP addresses seen after start. Powered off machines will not send you ARP replies. To speed up the process, you can use an nmap ping scan (nmap -sP) on your network from the server you are running arpalert on, in order to trigger all possible (live and running) hosts to respond your arp query. With running nmap ping scan regularly later, you have better chances catching a shortly living host. snippet from arpalert:
snippet from nmap:
Look around here: | ||||
|
feedback
|
|
You can use any arp scanner software like this: trogon mac scanner or colasoft mac scanner | |||
|
feedback
|