arping command in Linux with Examples
Ping destination on device interface by ARP packets, using source address source.
Options
The options for id commands are:
-A The same as -U, but ARP REPLY packets used instead of ARP REQUEST. -b Send only MAC level broadcasts. Normally arping starts from sending broadcast, and switch to unicast after reply received. -c count Stop after sending count ARP REQUEST packets. With deadline option, arping waits for count ARP REPLY packets, until the timeout expires. -D Duplicate address detection mode (DAD). See RFC2131, 4.4.1. Returns 0, if DAD succeeded i.e. no replies are received -f Finish after the first reply confirming that target is alive. -I interface Name of network device where to send ARP REQUEST packets. -h Print help page and exit. -q Quiet output. Nothing is displayed. -s source IP source address to use in ARP packets. If this option is absent, source address is: · In DAD mode (with option -D) set to 0.0.0.0. · In Unsolicited ARP mode (with options -U or -A) set to destination. · Otherwise, it is calculated from routing tables. -U Unsolicited ARP mode to update neighbours' ARP caches. No replies are expected. -V Print version of the program and exit. -w deadline Specify a timeout, in seconds, before arping exits regardless of how many packets have been sent or received. In this case arping does not stop after count packet are sent, it waits either for deadline expire or until count probes are answered.
Examples
We can use ip link show command to list all the network interfaces available on a machine.
$ ip link show 1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp0s25: mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 7c:05:07:10:08:8d brd ff:ff:ff:ff:ff:ff 3: wlx503eaa7c4c9b: mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000 link/ether 50:3e:aa:7c:4c:9b brd ff:ff:ff:ff:ff:ff
We see that output of ifconfig command displays 3 interfaces, namely lo, enp0s25 and wlx503eaa7c4c9b.
1. Without any option or arguments arping command displays the help message.
$ arping Usage: arping [-fqbDUAV] [-c count] [-w timeout] [-I device] [-s source] destination -f : quit on first reply -q : be quiet -b : keep broadcasting, don't go unicast -D : duplicate address detection mode -U : Unsolicited ARP mode, update your neighbours -A : ARP answer mode, update your neighbours -V : print version and exit -c count : how many packets to send -w timeout : how long to wait for a reply -I device : which ethernet device to use -s source : source ip address destination : ask for what ip address
2. Command arping is used to check the arp response for a particular host in LAN. By default the request is unicast.
$ arping -I wlx503eaa7c4c9b 192.168.0.1 ARPING 192.168.0.1 from 192.168.0.4 wlx503eaa7c4c9b Unicast reply from 192.168.0.1 [74:DA:DA:A0:0B:47] 3.216ms Unicast reply from 192.168.0.1 [74:DA:DA:A0:0B:47] 2.422ms Unicast reply from 192.168.0.1 [74:DA:DA:A0:0B:47] 2.456ms .
3. Use -c option to limit the number of arp packets.
$ arping -c 2 -I wlx503eaa7c4c9b 192.168.0.1 ARPING 192.168.0.1 from 192.168.0.4 wlx503eaa7c4c9b Unicast reply from 192.168.0.1 [74:DA:DA:A0:0B:47] 3.245ms Unicast reply from 192.168.0.1 [74:DA:DA:A0:0B:47] 2.423ms Sent 2 probes (1 broadcast(s)) Received 2 response(s)
4. By default arping starts from sending broadcast, and switch to unicast after reply received. But we can use -b option to send only MAC level broadcasts.
$ arping -c 4 -b -I wlx503eaa7c4c9b 192.168.0.1 ARPING 192.168.0.1 from 192.168.0.4 wlx503eaa7c4c9b Unicast reply from 192.168.0.1 [74:DA:DA:A0:0B:47] 3.246ms Unicast reply from 192.168.0.1 [74:DA:DA:A0:0B:47] 3.534ms Unicast reply from 192.168.0.1 [74:DA:DA:A0:0B:47] 3.230ms Unicast reply from 192.168.0.1 [74:DA:DA:A0:0B:47] 3.273ms Sent 4 probes (4 broadcast(s)) Received 4 response(s)
5. Use -f option to stop sending packets as soon as the first response is received confirming that target is alive.
$ arping -c 4 -b -f -I wlx503eaa7c4c9b 192.168.0.1 ARPING 192.168.0.1 from 192.168.0.4 wlx503eaa7c4c9b Unicast reply from 192.168.0.1 [74:DA:DA:A0:0B:47] 3.302ms Sent 1 probes (1 broadcast(s)) Received 1 response(s)
You can see in the example abobe, even though the packet count was specified as 4, arping command stopped sending packets after it received the first response.
6. We can use -w count option with number of seconds to specify a timeout, in seconds, before arping exits regardless of how many packets have been sent or received. In this case arping does not stop after count packet are sent, it waits either for deadline expire or until count probes are answered.
$ arping -w 4 -D -I wlx503eaa7c4c9b 192.168.0.4 ARPING 192.168.0.4 from 0.0.0.0 wlx503eaa7c4c9b Sent 5 probes (5 broadcast(s)) Received 0 response(s)
Linux send arp request
NAME
arping - sends arp and/or ip pings to a given host
SYNOPSIS
arping [-0aAbBdDeFhpqrRuUv] [-S host/ip] [-T host/ip] [-s MAC] [-t MAC] [-c count] [-i interface] [ -w seconds ] [ -W seconds ] [ -V vlan ] [ -Q priority ] [ -g group ] host | -B> arping --help
DESCRIPTION
The arping utility sends ARP and/or ICMP requests to the specified host and displays the replies. The host may be specified by its hostname, its IP address, or its MAC address. One request is sent each second. When pinging an IP an ARP who-has query is sent. When pinging a MAC address a directed broadcast ICMP Echo request is sent. For more technical explanation and an FAQ, see the README file. Note on timing ARP packets are usually replied to (on a LAN) so fast that the OS task scheduler can’t keep up to get exact enough timing. On an idle system the roundtrip times will be pretty much accurate, but with more load the timing gets less exact. To get more exact timing on a non-idle system, re-nice arping to -15 or so. # nice -n -15 arping foobar This is not just an issue with arping, it is with normal ping also (at least it is on my system). But it doesn’t show up as much with ping since arping packets (when pinging IP) doesn’t traverse the IP stack when received and are therefore replied to faster.
OPTIONS
--help Show extended help. Not quite as extensive as this manpage, but more than -h. -0 Use this option to ping with source IP address 0.0.0.0. Use this when you haven’t configured your interface yet. Note that this may get the MAC-ping unanswered. This is an alias for -S 0.0.0.0. -a Audible ping. -A Only count addresses matching requested address (This *WILL* break most things you do. Only useful if you are arpinging many hosts at once. See arping-scan-net.sh for an example). -b Like -0 but source broadcast source address (255.255.255.255). Note that this may get the arping unanswered since it’s not normal behavior for a host. -B Use instead of host if you want to address 255.255.255.255. -c count Only send count requests. -C count Only wait for count replies, regardless of -c and -w. -d Find duplicate replies. Exit with 1 if there are answers from two different MAC addresses. -D Display answers as exclamation points and missing packets as dots. Like flood ping on a Cisco. -e Like -a but beep when there is no reply. -F Don’t try to be smart about the interface name. Even if this switch is not given, -i disables this smartness. -g group setgid() to this group instead of the nobody group. -h Displays a help message and exits. -i interface Don’t guess, use the specified interface. -m type Type of timestamp to use for incoming packets. Use -vv when pinging to list available ones. -p Turn on promiscious mode on interface, use this if you don’t "own" the MAC address you are using. -P Send ARP replies instead of requests. Useful with -U. -q Does not display messages, except error messages. -Q priority 802.1p priority to set. Should be used with 802.1Q tag (-V). Defaults to 0. -r Raw output: only the MAC/IP address is displayed for each reply. -R Raw output: Like -r but shows "the other one", can be combined with -r. -s MAC Set source MAC address. You may need to use -p with this. -S IP Like -b and -0 but with set source address. Note that this may get the arping unanswered if the target does not have routing to the IP. If you don’t own the IP you are using, you may need to turn on promiscious mode on the interface (with -p). With this switch you can find out what IP-address a host has without taking an IP-address yourself. -t MAC Set target MAC address to use when pinging IP address. -T IP Use -T as target address when pinging MACs that won’t respond to a broadcast ping but perhaps to a directed broadcast. Example: To check the address of MAC-A, use knowledge of MAC-B and IP-B. $ arping -S -s -p -u Show index=received/sent instead of just index=received when pinging MACs. -U Send unsolicited ARP. This sets the destination MAC address in the ARP frame to the broadcast address. Unsolicited ARP is used to update the neighbours’ ARP caches. Example: $ arping -i -U -v Verbose output. Use twice for more messages. -V vlan VLAN tag to set. Defaults to no VLAN tag. -w sec Specify a timeout before ping exits regardless of how many packets have been sent or received. -W sec Time to wait between pings.
EXAMPLES
# arping -c 3 88.1.180.225 ARPING 88.1.180.225 60 bytes from 00:11:85:4c:01:01 (88.1.180.225): index=0 time=13.910 msec 60 bytes from 00:11:85:4c:01:01 (88.1.180.225): index=1 time=13.935 msec 60 bytes from 00:11:85:4c:01:01 (88.1.180.225): index=2 time=13.944 msec --- 88.1.180.225 statistics --- 3 packets transmitted, 3 packets received, 0% unanswered # arping -c 3 00:11:85:4c:01:01 ARPING 00:11:85:4c:01:01 60 bytes from 88.1.180.225 (00:11:85:4c:01:01): icmp_seq=0 time=13.367 msec 60 bytes from 88.1.180.225 (00:11:85:4c:01:01): icmp_seq=1 time=13.929 msec 60 bytes from 88.1.180.225 (00:11:85:4c:01:01): icmp_seq=2 time=13.929 msec --- 00:11:85:4c:01:01 statistics --- 3 packets transmitted, 3 packets received, 0% unanswered # arping -C 2 -c 10 -r 88.1.180.225 00:11:85:4c:01:01 00:11:85:4c:01:01
BUGS
You have to use -B instead of arpinging 255.255.255.255, and -b instead of -S 255.255.255.255. This is libnets fault.
SEE ALSO
ping(8), arp(8), rarp(8)
AUTHOR
Arping was written by Thomas Habets thomas@habets.se>. http://www.habets.pp.se/synscan/ git clone http://github.com/ThomasHabets/arping.git
arping
Ping destination on device interface by ARP packets, using source address source.
OPTIONS
The same as -U, but ARP REPLY packets used instead of ARP REQUEST.
Send only MAC level broadcasts. Normally arping starts from sending broadcast, and switch to unicast after reply received.
Stop after sending count ARP REQUEST packets. With deadline option, instead wait for count ARP REPLY packets, or until the timeout expires.
Duplicate address detection mode (DAD). See RFC2131, 4.4.1. Returns 0, if DAD succeeded i.e. no replies are received.
Finish after the first reply confirming that target is alive.
Name of network device where to send ARP REQUEST packets.
Quiet output. Nothing is displayed.
IP source address to use in ARP packets. If this option is absent, source address is:
· In DAD mode (with option -D) set to 0.0.0.0.
· In Unsolicited ARP mode (with options -U or -A) set to destination.
· Otherwise, it is calculated from routing tables.
Unsolicited ARP mode to update neighbours ARP caches. No replies are expected.
Print version of the program and exit.
Specify a timeout, in seconds, before arping exits regardless of how many packets have been sent or received. In this case arping does not stop after count packet are sent, it waits either for deadline expire or until count probes are answered.
Specify an interval, in seconds, between packets.
SECURITY
arping requires CAP_NET_RAW capability to be executed. It is not recommended to be used as set-uid root, because it allows user to modify ARP caches of neighbour hosts.
AVAILABILITY
arping is part of iputils package.