great way to suss out all Mac addresses, including inactive

on win11 i think you can just open network settings and click ethernet and it shows right there, same for wifi. got a command to scan a network for ips/macs without using an app? that could be handy...
 
on win11 i think you can just open network settings and click ethernet and it shows right there, same for wifi. got a command to scan a network for ips/macs without using an app? that could be handy...
On WIN 10, which is what I use, you can get "details" only for currently connected adapters. What I like about the getmac command is that it shows all adapter MAC addresses.

Wi-Fi Intel(R) Wi-Fi 3C-F0-xxxx Media disconnected
Ethernet Realtek PCIe 2. 04-D9-xxxx \Device\Tcpip_{F151CF02-4979xxxx0}
Ethernet 2 Intel(R) I211 G N/A Hardware not present
Bluetooth Netwo Bluetooth Devic 3C-F0-xxxx Media disconnected
vEthernet (Defa Hyper-V Virtual 00-15-xxxx \Device\Tcpip_{D48D5B8CB-1FC8-xxxx}
 
Neat. I used to use ipconfig /all to get this info. I'll try getmac the next time I need to do this. (y)

Seems you can also log into another system and get all the macs from there as well.
 
Neat. I used to use ipconfig /all to get this info. I'll try getmac the next time I need to do this. (y)

Seems you can also log into another system and get all the macs from there as well.
That would be way cool. How do I do that?
 
That would be way cool. How do I do that?
Code:
F:\>getmac -?

GETMAC [/S system [/U username [/P [password]]]] [/FO format] [/NH] [/V]

Description:
    This command line tool enables an administrator to display the MAC
    address for one or more network adapters on a system.

Parameter List:
    /S     system            Specifies the remote system to connect to.

    /U     [domain\]user     Specifies the user context under
                             which the command should execute.

    /P     [password]        Specifies the password for the given
                             user context. Prompts for input if omitted.

    /FO    format            Specifies the format in which the output
                             is to be displayed.
                             Valid values: "TABLE", "LIST", "CSV".

    /V                       Specifies that the detailed information
                             should be displayed in the output.

    /NH                      Specifies that the "Column Header" should
                             not be displayed in the output.
                             Valid only for TABLE and CSV formats.

    /?                       Displays this help/usage.

Examples:
    GETMAC /FO csv
    GETMAC /S system /NH /V
    GETMAC /S system /U user
    GETMAC /S system /U domain\user /P password /FO list /V
    GETMAC /S system /U domain\user /P password /FO table /NH
:D
 
Used to love AngryIP, haven't used it in years.

But do the expensive consumer routers these days not do this? Even my POS Orbi tracks MACs. I get a $100 or less router not doing this, but just assumed these days anything else would have some level of access control which would provide this info.
 
I must be missing something with the question. This seem to be and easy "arp -a" and done.
 
I just tried this and it still missed MACs on my small lan here. :(
Assuming your network is flat I'm not sure how that would be. You can't communicate with a device without knowing its mac or for off network devices the mac of the intervening router. If there is an intervening router then the non-local mac is invisible to any tool. That's how IP works. Perhaps I assumed too much ...

Assuming you've a /24 before you run the arp -a do something like this:

for /L %x in (1,1,254) do start ping 192.168.117.%x


Please note change the 192.168.117 bit to match your network. Don't freak out when a bunch a windows open up. They will close when done. Once all is done then run the arp command.



edited because I assumed again ... :)
 
Last edited:
Assuming your network is flat I'm not sure how that would be. You can't communicate with a device without knowing its mac or for off network devices the mac of the intervening router. If there is an intervening router then the non-local mac is invisible to any tool. That's how IP works. Perhaps I assumed too much ...

Assuming you've a /24 before you run the arp -a do something like this:

for /L %x in (1,1,254) do start ping 192.168.117.%x


Please note change the 192.168.117 bit to match your network. Don't freak out when a bunch a windows open up. They will close when done. Once all is done then run the arp command.



edited because I assumed again ... :)
Yep, flat and unmanaged so no layer 2/3 stuff going on either. I've noticed in the past that the arp only returns results for other IPs that it has had contact with, so pinging it and then running it again will always get it on the list. But if it's not responding to pings I wonder if it would show up--well, answered my own question on that one--yes it will show up even if the device didn't respond to the ping.

Still you have to basically run that for loop before arp -a to get the full results--which worked fine on my network to find everything, but it's multi-step for sure.
 
But if it's not responding to pings I wonder if it would show up--well, answered my own question on that one--yes it will show up even if the device didn't respond to the ping.

Still you have to basically run that for loop before arp -a to get the full results--which worked fine on my network to find everything, but it's multi-step for sure.

That because your system ARPed for the mac before to establish layer 2 connectivity before pinging it. The ping is just the mechanism to force your system to perform the ARP request. The icmp that follows is irrelevant to the use case. There's an old tool on *ix called arp ping that will just do the arp requests without the icmp. Any scanning tool has to populate the ARP cache. It is simply happening under the covers.
 
That because your system ARPed for the mac before to establish layer 2 connectivity before pinging it. The ping is just the mechanism to force your system to perform the ARP request. The icmp that follows is irrelevant to the use case. There's an old tool on *ix called arp ping that will just do the arp requests without the icmp. Any scanning tool has to populate the ARP cache. It is simply happening under the covers.
Makes sense. I'll have to try that arp ping when I'm on a nix system next time. (y) Learned two new tricks in this thread. :)
 
Back
Top