arp - IPアドレスとMACアドレスの対応を確認する

にメンテナンス済み
目次

arpコマンドは、IPアドレスとMACアドレスの対応表(ARPテーブル) を表示・編集するコマンドです。

同じネットワーク(LAN)内の機器と通信するとき、Windows は相手の IP アドレスから MAC アドレスを調べ、結果を ARP テーブルに一時的に記憶します。arpコマンドを使うと、この記憶の内容を確認できます。

arpコマンドの基本構文

arp -a [<IPアドレス>] [-N <インターフェイスのIPアドレス>]
arp -s <IPアドレス> <MACアドレス> [<インターフェイスのIPアドレス>]
arp -d <IPアドレス | *> [<インターフェイスのIPアドレス>]
オプション説明
-aARP テーブルを表示する(-gでも同じ)
-s静的エントリを追加する
-dエントリを削除する(*を指定するとすべてのエントリを削除)
-N指定したインターフェイスのエントリだけを表示する

ARPテーブルを表示する

arp -a
- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>arp -a
インターフェイス: 192.168.1.10 --- 0x7
インターネット アドレス 物理アドレス 種類
192.168.1.1 aa-bb-cc-11-22-33 動的
192.168.1.20 aa-bb-cc-44-55-66 動的
192.168.1.255 ff-ff-ff-ff-ff-ff 静的
224.0.0.22 01-00-5e-00-00-16 静的
C:\users\user>

IP アドレスや MAC アドレスの値は環境によって異なります。表示されるのは、LAN アダプターなどのインターフェイスごとのブロックです。

列意味
インターネット アドレス機器の IP アドレス
物理アドレス機器の MAC アドレス(-区切りの 16 進数)
種類動的(通信時に自動で学習)または静的(固定・特殊なアドレス)

ff-ff-ff-ff-ff-ffはブロードキャスト、01-00-5e-で始まるアドレスはマルチキャストで、通常の機器ではありません。

表示される機器は「最近通信した相手」だけ

ARP テーブルには、最近通信した機器しか載りません。また動的エントリは一定時間(数分程度)使われないと自動的に消えます。LAN 内の機器が表示されないときは、先にpingで通信してから確認してください。

特定のIPアドレスのMACアドレスを調べる

IP アドレスを指定すると、その機器のエントリだけを表示します。

ping -n 1 192.168.1.20
arp -a 192.168.1.20

pingで相手と通信すると、ARP テーブルに登録されます。arp -aの前にpingを実行しておくのがコツです。

ルーターの向こう側の機器は調べられない

ARP は同じネットワーク内でのみ働きます。インターネット上のサーバーなど、ルーターを越えた先の機器の IP アドレスを指定しても、その MAC アドレスは表示されず、「ARP エントリが見つかりません。」と表示されます。外部の機器と通信した場合に ARP テーブルに載るのは、ルーター(デフォルトゲートウェイ)の IP アドレスのエントリです。

インターフェイスを指定して表示する

Wi-Fi と有線など複数のアダプターがある場合、-Nで表示するインターフェイスを絞り込めます。そのアダプターに割り当てられた IP アドレスを指定します(-aと組み合わせて使います)。

arp -a -N 192.168.1.10

エントリを削除する

ルーターの交換や IP アドレスの付け替えなどで、古い対応が残って通信できないときは、エントリを削除すると再学習されます。管理者として実行したコマンドプロンプトで実行してください。

特定のエントリを削除
arp -d 192.168.1.20
すべてのエントリを削除
arp -d *

*を指定すると、-sで追加した静的エントリも削除されます。削除しても、動的エントリは次に通信した時点で自動的に再登録されます。

管理者権限が必要

arp -dとarp -sは管理者権限が必要です。権限がないと「要求された操作には管理者特権が必要です」というエラーになります。詳しくは関連記事を参照してください。

静的エントリを追加する

-sで IP アドレスと MAC アドレスの対応を手動で登録できます。MAC アドレスは-区切りの 16 進数で指定します。

arp -s 192.168.1.20 aa-bb-cc-44-55-66

静的エントリは、再起動すると消えます。また、IP アドレスはそのパソコンから直接到達できる(同じサブネットの)ものに限られます。永続的に残したい場合は、netsh interface ipv4 add neighborsなどの別の方法が必要です。通常の利用では静的エントリを追加する必要はほとんどなく、誤った値を登録すると通信できなくなるため注意してください。

自分のMACアドレスを調べたいとき

arpは他の機器のエントリを表示するコマンドで、自分自身の MAC アドレスは載りません。自分の MAC アドレスは、ipconfig /allの「物理アドレス」で確認できます。

ipconfig /all

バッチファイルでMACアドレスを取り出す

for /fと組み合わせると、指定した IP アドレスの MAC アドレスを変数に格納できます。

get-mac.cmd
@echo off
setlocal

set TARGET=%~1
if "%TARGET%"=="" (
  echo 使い方: get-mac.cmd IPアドレス
  exit /b 1
)

ping -n 1 %TARGET% >nul

set MAC=
for /f "tokens=2" %%m in ('arp -a %TARGET% ^| findstr /r "[0-9a-f][0-9a-f]-[0-9a-f][0-9a-f]-"') do set MAC=%%m

if "%MAC%"=="" (
  echo %TARGET% のMACアドレスが見つかりませんでした。
  exit /b 1
)

echo %TARGET% のMACアドレス: %MAC%

findstrでMACアドレスの形式(aa-bb-のような並び)を含む行だけに絞り、tokens=2で空白区切りの 2 番目の項目(物理アドレス)を取り出します。

まとめ

やりたいことコマンド
ARP テーブルを表示するarp -a
特定の IP アドレスのエントリを表示arp -a 192.168.1.20
エントリを 1 件削除するarp -d 192.168.1.20
すべてのエントリを削除するarp -d *
静的エントリを追加するarp -s <IP> <MAC>
自分の MAC アドレスを確認するipconfig /all

関連記事

練習問題

練習問題

ARP テーブルの内容をすべて表示するコマンドはどれでしょうか?

正しいものを 1 つ選んでください。

  1. arp -d
  2. arp -a
  3. arp -s

練習問題

arp -aで LAN 内の機器が表示されないときの対処として適切なものはどれでしょうか?

正しいものを 1 つ選んでください。

  1. 先に ping で相手と通信してから、もう一度 arp -a を実行する
  2. arp -s で空の MAC アドレスを登録する
  3. 管理者として実行しないと arp -a は何も表示しない
#コマンドプロンプト #バッチファイル #コマンドライン #コマンド #ネットワーク #arp