---
name: "arp"
section: "8"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/arp"
---

# arp(8)

address resolution display and control

## NAME

**arp** – address resolution display and control

## SYNOPSIS

**arp** \[**--libxo** *options*\] \[**-n**\] \[**-i** *interface*\] *hostname*

**arp** \[**--libxo** *options*\] \[**-n**\] \[**-i** *interface*\] **-a**

**arp** **-d** *hostname*

**arp** **-d** \[**-i** *interface*\] **-a**

**arp** **-s** *hostname* *ether\_addr* \[**temp**\] \[**blackhole** \| **reject**\] \[**pub**\]

**arp** **-S** *hostname* *ether\_addr* \[**temp**\] \[**blackhole** \| **reject**\] \[**pub**\]

**arp** **-f** *filename*

## DESCRIPTION

The **arp** utility displays and modifies the Internet-to-Ethernet address translation tables used by the address resolution protocol ([arp(4)](/arp/4.md)). With no flags, the program displays the current ARP entry for *hostname*. The host may be specified by name or by number, using Internet dot notation.

Available options:

- **--libxo**

  Generate output via [libxo(3)](/libxo/3.md) in a selection of different human and machine readable formats. See [xo\_options(7)](/xo_options/7.md) for details on command line arguments.

- **-a**

  The program displays or, if it is used with the **-d** flag, deletes all of the current ARP entries.

- **-d**

  A super-user may delete an entry for the host called *hostname* with the **-d** flag.

  The **-d** flag may be combined with the **-a** flag to delete all entries.

- **-i** *interface*

  Limit the operation scope to the ARP entries on *interface*. Applicable only to the following operations: display one, display all, delete all.

- **-n**

  Show network addresses as numbers (normally **arp** attempts to display addresses symbolically).

- **-s** *hostname* *ether\_addr*

  Create an ARP entry for the host called *hostname* with the Ethernet address *ether\_addr*. The Ethernet address is given as six hex bytes separated by colons. The entry will be permanent unless the word **temp** is given in the command. If the word **pub** is given, the entry will be “published”; i.e., this system will act as an ARP server, responding to requests for *hostname* even though the host address is not its own. In this case the *ether\_addr* can be given as **auto** in which case the interfaces on this host will be examined, and if one of them is found to occupy the same subnet, its Ethernet address will be used.

  If the **reject** keyword is specified the entry will be marked so that traffic to the host will be discarded and the sender will be notified the host is unreachable. The **blackhole** keyword is similar in that traffic is discarded but the sender is not notified. These can be used to block external traffic to a host without using a firewall.

- **-S** *hostname* *ether\_addr*

  Is just like **-s** except any existing ARP entry for this host will be deleted first.

- **-f** *filename*

  Cause the file *filename* to be read and multiple entries to be set in the ARP tables. Entries in the file should be of the form

  *hostname* *ether\_addr* \[**temp**\] \[**blackhole** \| **reject**\] \[**pub**\]

  with argument meanings as given above. Leading whitespace and empty lines are ignored. A ‘#’ character will mark the rest of the line as a comment.

## SEE ALSO

[inet(3)](/inet/3.md), [libxo(3)](/libxo/3.md), [arp(4)](/arp/4.md), [xo\_options(7)](/xo_options/7.md), [ifconfig(8)](/ifconfig/8.md), [ndp(8)](/ndp/8.md)

## HISTORY

The **arp** utility appeared in 4.3BSD.
