arping
Arping is a computer software tool that is used to discover hosts on a computer network. The program tests whether a given IP address is in use on the local network, and can get additional information about the device using that address.
The arping tool is analogous in function to ping, which probes hosts using the Internet Control Message Protocol (ICMP). The difference is that while ICMP is a routable protocol that operates at layer 3 of the OSI model, arping operates at the layer 2 (or the link layer of the OSI model) using the Address Resolution Protocol (ARP) for probing hosts. Since ARP is non-routable, this only works for the local network. However, in networks employing repeaters that use proxy ARP, the ARP response may be coming from such proxy hosts and not from the probed target.
There are two popular arping implementations. One is part of Linux iputils suite, and cannot resolve MAC addresses to IP addresses. The other arping implementation, written by Thomas Habets, can ping hosts by MAC address as well as by IP address, and adds more features.
Having both arping implementations on a system may introduce conflicts. Ubuntu, for example, handles this by removing iputils arping if Habets's arping is installed (NetworkManager will also be removed, because it requires the iputils arping).
Example
Example session output of arping from iputils:
ARPING 192.168.39.120 from 192.168.39.1 eth0 Unicast reply from 192.168.39.120 [00:01:80:38:F7:4C] 0.810ms Unicast reply from 192.168.39.120 [00:01:80:38:F7:4C] 0.607ms Unicast reply from 192.168.39.120 [00:01:80:38:F7:4C] 0.602ms Unicast reply from 192.168.39.120 [00:01:80:38:F7:4C] 0.606ms Sent 4 probes (1 broadcast(s)) Received 4 response(s)
Example session output from Thomas Habets's arping:
ARPING 192.168.16.96 60 bytes from 00:04:5a:4b:b6:ec (192.168.16.96): index=0 time=292.000 usec 60 bytes from 00:04:5a:4b:b6:ec (192.168.16.96): index=1 time=310.000 usec 60 bytes from 00:04:5a:4b:b6:ec (192.168.16.96): index=2 time=256.000 usec ^C --- 192.168.16.96 statistics --- 3 packets transmitted, 3 packets received, 0% unanswered (0 extra)