> For the complete documentation index, see [llms.txt](https://riteshs4hu.gitbook.io/infosec-notes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://riteshs4hu.gitbook.io/infosec-notes/reconnaissance/active-reconnaissance-approach/netwrok-scanning-tools/arping.md).

# arping

The `arping` command is a network tool used to discover and verify the reachability of hosts on a local network using **ARP (Address Resolution Protocol)** instead of ICMP (used by `ping`). It is primarily used to resolve **MAC addresses** of devices on the same subnet.

### Syntax

```bash
arping [options] <destination>
```

### Examples

* **Ping an IP address using ARP**

  ```bash
  arping 192.168.1.1
  ```
* **Use source IP address `0.0.0.0` when the interface is not yet configured**

  ```bash
  arping -0 192.168.1.1
  ```
* **Enable audible ping**

  ```bash
  arping -a 192.168.1.1
  ```
* **Only count addresses matching the requested address**

  ```bash
  arping -A 192.168.1.1
  ```
* **Use broadcast source address `255.255.255.255`**

  ```bash
  arping -b 192.168.1.1
  ```
* **Send ARP requests to a broadcast address**

  ```bash
  arping -B
  ```
* **Send only 5 ARP requests**

  ```bash
  arping -c 5 192.168.1.1
  ```
* **Only wait for 3 replies before exiting**

  ```bash
  arping -C 3 192.168.1.1
  ```
* **Detect duplicate replies from multiple MAC addresses**

  ```bash
  arping -d 192.168.1.1
  ```
* **Display replies as exclamation points (`!`), and lost packets as dots (`.`)**

  ```bash
  arping -D 192.168.1.1
  ```
* **Beep when there is no reply**

  ```bash
  arping -e 192.168.1.1
  ```
* **Do not try to automatically determine the interface name**

  ```bash
  arping -F 192.168.1.1
  ```
* **Set GID (Group ID) to a specific group instead of `nobody`**

  ```bash
  arping -g mygroup 192.168.1.1
  ```
* **Specify a network interface for ARP requests**

  ```bash
  arping -i eth0 192.168.1.1
  ```
* **Use a specific timestamp type for incoming packets**

  ```bash
  arping -m 2 192.168.1.1
  ```
* **Quiet mode (suppress output except errors)**

  ```bash
  arping -q 192.168.1.1
  ```
* **Set 802.1p priority (QoS)**

  ```bash
  arping -Q 5 192.168.1.1
  ```
* **Display only the MAC/IP address of replies**

  ```bash
  arping -r 192.168.1.1
  ```
* **Display raw output with additional details**

  ```bash
  arping -R 192.168.1.1
  ```
* **Set a custom source MAC address**

  ```bash
  arping -s 00:11:22:33:44:55 192.168.1.1
  ```
* **Set a custom source IP address**

  ```bash
  arping -S 192.168.1.100 192.168.1.1
  ```
* **Set a target MAC address when pinging an IP**

  ```bash
  arping -t 00:AA:BB:CC:DD:EE 192.168.1.1
  ```
* **Ping a MAC address using a known IP and MAC**

  ```bash
  arping -S 192.168.1.2 -s 00:11:22:33:44:55 -p 00:AA:BB:CC:DD:EE
  ```
* **Enable promiscuous mode (for non-owned MAC addresses)**

  ```bash
  arping -p 192.168.1.1
  ```
* **Send ARP replies instead of requests**

  ```bash
  arping -P 192.168.1.1
  ```
* **Show the received/sent packet count in output**

  ```bash
  arping -u 192.168.1.1
  ```
* **Send unsolicited ARP (gratuitous ARP)**

  ```bash
  arping -U 192.168.1.1
  ```
* **Enable verbose output**

  ```bash
  arping -v 192.168.1.1
  ```
* **Increase verbosity (very verbose mode)**

  ```bash
  arping -vv 192.168.1.1
  ```
* **Add an 802.1Q VLAN tag to packets**

  ```bash
  arping -V 10 192.168.1.1
  ```
* **Set a timeout of 5 seconds before exiting**

  ```bash
  arping -w 5 192.168.1.1
  ```
* **Wait 2 seconds between pings**

  ```bash
  arping -W 2 192.168.1.1
  ```
* **Enable seccomp (secure computing mode)**

  ```bash
  arping -z 192.168.1.1
  ```
