# man > arp(8)

---
type: CommandReference
command: arp
mode: man
section: 8
source: man-pages
---

## Quick Reference
- `arp -n` — Show ARP cache with numeric addresses
- `arp -i eth0` — Display ARP entries for interface eth0
- `arp -d 10.0.0.1` — Delete entry for IP 10.0.0.1
- `arp -s 10.0.0.2 00:11:22:33:44:55` — Add permanent entry
- `arp -s 10.0.0.2 00:11:22:33:44:55 temp` — Add temporary entry
- `arp -i eth0 -Ds 10.0.0.2 eth1 pub` — Proxy ARP: eth0 answers for 10.0.0.2 using MAC of eth1
- `arp -f /etc/ethers` — Load entries from file
- `arp -a` — Display all entries (default)

## Name
arp — manipulate the system ARP cache

## Synopsis
shell
arp [-vn] [-H type] [-i if] [-ae] [hostname]
arp [-v] [-i if] -d hostname [pub]
arp [-v] [-H type] [-i if] -s hostname hw_addr [temp]
arp [-v] [-H type] [-i if] -s hostname hw_addr [netmask nm] pub
arp [-v] [-H type] [-i if] -Ds hostname ifname [netmask nm] pub
arp [-vnD] [-H type] [-i if] -f [filename]
## Options
**Mode flags (mutually exclusive)**
- `-s hostname hw_addr [temp] [netmask nm] [pub]` — Add a static ARP entry.
- `-d hostname [pub]` — Delete an ARP entry.
- `-D` — Use the MAC address of an interface instead of a manual `hw_addr` (for proxy ARP).
- `-f [filename]` — Read entries from a file (`/etc/ethers` by default); each line contains a hostname and hardware address separated by whitespace, with optional `temp`, `pub`, and `netmask` flags.

**Display and generic options**
- `-v, --verbose` — Verbose operation.
- `-n, --numeric` — Show numerical addresses (no hostname resolution).
- `-H, --hw-type type` — Hardware type (default `ether` for Ethernet). Other possible values: `arcnet`, `pronet`, `ax25`, `netrom`.
- `-i, --device if` — Select interface. When dumping, only entries for this interface are shown. When setting, the entry is associated with this interface; for `pub` entries this is the interface that answers ARP requests.
- `-a` — Display all entries (default behaviour).
- `-e` — Display entries in an alternative format.

**Notes**
- A hostname may also be given as an IP address in dotted‑decimal notation.
- For compatibility, the hostname and hardware address positions can be swapped.
- In the display, entry flags: **`C`** = complete, **`M`** = permanent, **`P`** = published (proxy).
- Adding proxy ARP for entire subnets (via `netmask`) is not recommended but supported by older kernels.

## Examples
shell
# Proxy ARP: answer requests for 10.0.0.2 on eth0 using eth1's MAC address
arp -i eth0 -Ds 10.0.0.2 eth1 pub

# Delete entry for 10.0.0.1 on eth1 (matches permanent and proxy entries)
arp -i eth1 -d 10.0.0.1
## Files
- `/proc/net/arp` — ARP cache in the proc filesystem
- `/etc/ethers` — Default file for `-f` (not official)
- `/etc/networks`
- `/etc/hosts`

## See Also
- [rarp(8)](http://localhost/phpMan.php/man/rarp/8/markdown)
- [route(8)](http://localhost/phpMan.php/man/route/8/markdown)
- [ifconfig(8)](http://localhost/phpMan.php/man/ifconfig/8/markdown)
- [netstat(8)](http://localhost/phpMan.php/man/netstat/8/markdown)
- [arp(7)](http://localhost/phpMan.php/man/arp/7/markdown) (Linux ARP internals)