【 Get-NetNeighbor 】コマンドレット――ネットワークアダプターのARPテーブルを取得するWindows PowerShell基本Tips(42)

本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Get-NetNeighbor」コマンドレットを解説します。

» 2022年09月08日 05時00分 公開
[後藤諭史@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Windows PowerShell基本Tips」のインデックス

連載目次

 本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、ネットワークアダプターのARP(Address Resolution Protocol)テーブルを取得する「Get-NetNeighbor」コマンドレットです。

Get-NetNeighborコマンドレットとは?

 IPネットワークの通信経路は、異なるネットワーク(サブネット)宛ての通信であればサブネット間を接続する「ルーター」を介して行われます。その際の宛先はIPアドレスで指定され、コンピュータはルーターにIPアドレスで転送を依頼し、ルーターが適切な経路にパケットを転送します。

 IPアドレスはいわゆるOSI(Open Systems Interconnection)参照モデルではレイヤー3(ネットワーク層)のアドレスとなりますが、同一サブネット上のルーターをはじめとする他のコンピュータと通信するには、IPアドレスとレイヤー2(データリンク層)のアドレスである「MACアドレス」(Media Access Control address)とひも付けて管理する必要があります。

 通信先のIPアドレスを持つMACアドレスを取得するために使用されるプロトコルが「ARP(Address Resolution Protocol)」ですが、通信を開始するたびに毎回ARPを利用してIPアドレスに対応するMACアドレスを取得するのは非常に効率が悪く、ネットワークにも負荷をかけてしまうため望ましくありません。

 そのため、OS側でメモリ上にIPアドレスとMACアドレスをひも付けたデータをキャッシュとして一定期間保持し、頻繁にARP解決が行われないようにしています。

 「Get-NetNeighbor」は、このキャッシュされたARPテーブルを参照するコマンドレットです。Get-NetNeighborコマンドレットは、従来コマンドプロンプトで使用していた「arp」コマンドの「-a」オプション付き実行と同等のものとなります。

 なお、データリンク層、ネットワーク層といったOSI参照モデルの詳細に関しては、「ネットワーク用語辞典」を参照してください。

Get-NetNeighborコマンドレットの書式

Get-NetNeighbor [オプション]


Get-NetNeighborコマンドレットの主なオプション

オプション 意味
-IPAddress ARPテーブルから参照したいIPアドレスを指定する。省略可能
-InterfaceIndex 情報を取得するネットワークアダプターの番号を指定する。省略可能
-State ARPのステート(状態)を指定して、該当するステートのARPテーブルのみ取得する。7種類のステートから指定する。省略可能
-LinkLayerAddress ARPテーブルから参照したいMACアドレスを指定する。省略可能
-AddressFamily プロトコル(IPv4/IPv6)を指定する。省略可能


ARPテーブルを取得する

 Get-NetNeighborコマンドレットをオプションなしで実行すると、プロトコル(IPv4、IPv6)を問わず、コンピュータが保持している全てのARPテーブルを取得します(画面1)。

コマンドレット実行例

Get-NetNeighbor

画面1 画面1 コンピュータが保持している全てのARPテーブルを取得した


特定のネットワークアダプターのARPテーブルを取得する

 本連載第33回で解説したGet-NetAdapter」コマンドレットを併用することで、特定のネットワークアダプターのARPテーブルを取得することができます(画面2)。

コマンドレット実行例

Get-NetAdapter -Name <ネットワークアダプター名> | Get-NetNeighbor

画面2 画面2 「Get-NetAdapter」コマンドレットを併用して、ネットワークアダプター「Wi-Fi」のARPテーブルのみを取得した


ARPテーブルの状態でフィルターをして取得する

 Get-NetNeighborコマンドレットを「-State」オプションを指定して実行すると、特定のステート(状態)のARPテーブルを表示します。例えば、到達可能なARPテーブルのみを表示したい場合には、「-State」オプションで「Reachable」を指定します(画面3)。

コマンドレット実行例

Get-NetNeighbor -State Reachable

画面3 画面3 「-State」オプションを指定して、到達可能なARPテーブルのみを取得した

 Stateで指定可能なオプションは「Delay」「Incomplete」「Permanent」「Probe」「Reachable」「Stale」「Unreachable」の7つです。それぞれの意味については「Windows管理者のためのIPv6入門 第3回 L2アドレスを解決する近隣探索プロトコル」を参照してください。

筆者紹介

後藤 諭史(ごとう さとし)

Microsoft MVP for Cloud and Datacenter Management(2012-2023)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。


Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

4AI by @IT - AIを作り、動かし、守り、生かす
Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。