Get hostname from MAC address on Windows

3

How can I Get Hostname from IP address/MAC address on Windows? (Win7, if it's version dependent)

I know that arp -a will give me a table of IP and MAC. Is there something similar for Hostname and MAC/IP?

matt wilkie

Posted 2016-06-03T05:52:00.437

Reputation: 4 147

Answers

2

If you start with a MAC address, you first need to get the IP address. This means that you need access to a device that has the IP address associated with the MAC. As per the question, arp -a will list the MAC addresses and corresponding IP addresses. In order to populate that list, the machine will have had to at some point issued an arp request, saying "who has IP x.x.x.x" - the owner will reply and upon receipt, the arp table will be populated.

In order for this to work, both devices must be on the same layer 2 network - the same switch/vlan. You can trigger arp requests manually by pinging every IP on the network, or using a utility like nmap to do them all in one go.

Once you have the IP address, you are relying on a name resolution service to do a reverse lookup and return a hostname that is associated with an IP.

In DNS this is achieved through PTR records. For each IP address, there is a PTR record in which is stored the associated hostname. However, there is no obligation to store PTR records so they may not be present, in which case the lookup will fail.

They look like this:

13.12.11.10.in-addr.arpa. 900   IN      PTR     hostname.domain.com.

The IP address in the PTR record is reversed. So to get the hostname of 10.11.12.13, we say to DNS "Give me the PTR record for 13.12.11.10.in-addr.arpa."

It returns the above record. You can achieve this in by doing

nslookup 10.11.12.13

When nslookup is given an IP address, it will try to do a PTR lookup.

As per the other reply, if the IP belongs to a Windows machine, you can also do nbtstat -A 10.31.46.59 (note the uppercase -A)

Paul

Posted 2016-06-03T05:52:00.437

Reputation: 52 173

1ok, to boil this down: do arp -a to show table of MAC to IP addresses, then follow with nslookup ... (or nbstat -A on Windows) on each IP in order to get the hostname. That about capture it? – matt wilkie – 2016-06-05T00:56:20.027

@mattwilkie Yes - though on linux, by default arp -a will do a reverse lookup by default (that you switch off with -n) and so get there in one step if possible – Paul – 2016-06-05T05:45:09.703

1

Ping -a <ip address>

This will parse your reverse lookup zone in DNS.

If you don't have a reverse lookup zone it will lookup in your local name cache.

If you don't have an entry it will do a broadcast on your LAN (within the subnet you are in) to query for it.

This only for IP > hostname resolution. No MACs.

Citizen

Posted 2016-06-03T05:52:00.437

Reputation: 369

0

Maybe this will work:

nbtstat -a 192.168.1.100

where 192.168.100 is your IP address.

Expenzor

Posted 2016-06-03T05:52:00.437

Reputation: 121