LAN内のアクティブホストをARPで検出するスキャンツール
- Netdiscover -
Netdiscoverは、ICMPに依存せずにネットワーク上のホストを検出できる便利なツールです。しかし、オプションやモードの違いを理解しないまま使うと、十分な結果が得られないこともあります。
本記事では、Netdiscoverの使い方を具体的なコマンド例とともに徹底解説!
さらに、定番ツール「Nmap」との違いを比較し、それぞれの特性と使い分けについても解説しています。
Netdiscoverとは
Netdiscoverは、ローカルネットワーク上のホストを検出するための軽量なツールであり、ARP(Address Resolution Protocol)プロトコルを利用してIPアドレスとMACアドレスの対応関係を収集します。ポートスキャンや詳細なサービス検出を行うツールとは異なり、「どのホストがネットワーク上に存在しているか」を迅速かつ低負荷で把握することに特化しています。
脆弱性診断やペネトレーションテストにおいては、初期フェーズ(情報収集)でのネットワーク可視化に有効で、対象範囲のホスト一覧を短時間で取得する用途に適しています。
主な特徴
- アクティブ・パッシブの両スキャンに対応
- ICMPに依存しないため、Pingが無効でも検出可能
- インタラクティブUI
- 低負荷でネットワークへの影響が少ない
- Kali Linuxなどペネトレーションテスト向けディストリビューションに標準搭載
- オープンソース(無償・改変が可能)
アクティブ・パッシブの両スキャンに対応
アクティブスキャンとパッシブスキャンの2つの動作モードをサポートしています。
| アクティブスキャン | ARPリクエストを能動的に送信し、応答を返したホストを検出する |
|---|---|
| パッシブスキャン | パケットを一切送信せず、ネットワーク上を流れるパケットを受動的にキャプチャしてホストを検出する |
アクティブスキャンは短時間でホストを検出できる反面、送信したパケットがログに残る可能性があります。一方、パッシブスキャンはパケットを送信しないため、ネットワークへの影響を最小限に抑えながら、時間をかけてホスト情報を収集します。
ICMPに依存しないため、Pingが無効でも検出可能
一般的なホスト検出手法として、ICMPエコー要求(いわゆる「Ping」)を使う方法が広く知られています。しかしながら、セキュリティポリシーによってICMPパケットをブロックしているホストやネットワーク機器は少なくありません。
NetdiscoverはICMPではなくARPプロトコルを利用するため、Pingに応答しないホストでも検出できる場合があります。
インタラクティブUI
Netdiscoverは、ターミナル上でリアルタイムに結果を確認できるインタラクティブなユーザーインターフェースを備えています。スキャン実行中に新たなホストが検出されると、結果が自動更新されます。
低負荷でネットワークへの影響が少ない
Netdiscoverが送信するARPパケットは非常に軽量で、デフォルト設定ではパケット送信間隔にも一定の待機時間が設けられています。そのため、スキャン実行中にネットワーク帯域を大きく消費することなく、通常業務への影響を抑えながらホスト検出が行えます。
Kali Linuxなどペネトレーションテスト向けディストリビューションに標準搭載
Netdiscoverは、Kali Linuxをはじめとするペネトレーションテスト向けディストリビューションに標準搭載されています。

オープンソース(無償・改変が可能)
Netdiscoverはオープンソースソフトウェアとして公開されており、無償で利用できます。ライセンスはGNU General Public License(GPL)が適用されており、ソースコードの閲覧・改変・再配布が可能です。
ソースコードはGitHubにて公開されており、コミュニティによるメンテナンスが行われています。
類似ツール(Nmap)との違い
Netdiscoverと同様に、ネットワーク上のホスト探索に広く使われるツールとしてNmap(Network Mapper)があります。両ツールはいずれもセキュリティ診断やネットワーク管理の場面で活用されますが、その設計思想と得意領域には明確な違いがあります。
NetdiscoverとNmapの違い
| 比較項目 | Netdiscover | Nmap |
|---|---|---|
| 主な用途 | ホスト検出(IP・MACアドレスの特定) | ホスト探索・ポートスキャン・サービス検出・OS推定など |
| 使用プロトコル | ARP | ICMP・TCP・UDP・ARPなど |
| スキャン対象 | ローカルのみ | ローカル・リモート問わず広範囲に対応 |
| パッシブモード | 対応(トラフィック監視) | 非対応(必ず能動的なパケットを送信) |
| 出力情報 | IPアドレス・MACアドレス・ベンダー名 | ポート状態・サービス・OS・バージョン情報など |
| ネットワーク負荷 | 低い | 比較的高い(スキャン設定による) |
Netdiscoverは「どのホストが存在するか」を把握するツール、Nmapは「そのホストが何を提供しているか」を分析するツールと整理すると理解しやすいです。両者は競合ではなく補完関係にあります。それぞれのツールの強みを組み合わせることで、調査の効率と精度を高められます。
- Netdiscoverが適している場面
- ローカルネットワーク内で「どのIPアドレス、どのMACアドレスのデバイスが存在するか」を素早く把握したいとき
- 接続ホストのベンダー情報を手軽に確認したいとき
- パッシブモードで静かにトラフィックを監視しながらホストを特定したいとき
- Nmapが適している場面
- 開放ポートやサービスのバージョン情報まで調査したいとき
- OSの種別推定やNSEスクリプトによる詳細な検査を行いたいとき
- ルーターを越えた異なるセグメントのホストもスキャン対象に含めたいとき
利用上の注意事項
Netdiscoverは軽量で扱いやすいツールですが、使用にあたっては以下の点に注意が必要です。
許可されたネットワークでのみ使用する
Netdiscoverを実行すると、ARPパケットがネットワーク上に送信されます。自身が管理権限を持つネットワーク、または許可を得たネットワーク以外での使用は、不正アクセス禁止法など法令に抵触する恐れがあります。
パッシブモードでは検出漏れが発生する
パッシブモードは通信を待ち受ける方式のため、以下の特徴があります。
- トラフィックが少ない環境では検出率が低下
- 未通信のホストは検出できない
取得した情報の取り扱いに注意する
スキャン結果にはMACアドレスやベンダー情報など、ネットワーク構成に関わる機密性の高い情報が含まれます。ファイル出力した結果は適切なアクセス制御のもとで管理し、作業完了後は速やかに削除またはセキュアな保管場所に移すことを徹底してください。
Netdiscoverのインストール
- Kali Linux 2026.1
- Ubuntu 24.04 LTS
Kali Linuxの場合
ペネトレーションテスト用途に特化したKali Linuxには、netdiscoverパッケージが標準でインストールされています。
# インストール済みパッケージの確認
$ apt list --installed | grep netdiscover
netdiscover/kali-rolling,now 0.21-1 amd64 [インストール済み、自動]
# 実行ファイルのパス確認
$ which netdiscover
/usr/sbin/netdiscover
# バージョン確認
$ netdiscover -h
Netdiscover 0.21 [Active/passive ARP reconnaissance tool]
Written by: Jaime Penalba <jpenalbae@gmail.com>
〜 以下、省略 〜追加のインストール作業は不要で、すぐに利用を開始できます。
アプリケーションメニューにも含まれています。
09-Discovery>System Network Configuration Discovery>netdiscover

Ubuntuの場合
一般的なディストリビューションでは、Netdiscoverはプリインストールされていません。Ubuntuの場合、公式リポジトリに含まれているため、aptコマンドでインストール可能です。
パッケージリストの更新
$ sudo apt updateまず、パッケージリストを最新の状態に更新します。
パッケージ情報の確認
$ apt show netdiscover
Package: netdiscover
Version: 0.10-3build2
Priority: optional
Section: universe/net
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Joao Eriberto Mota Filho <eriberto@debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 2,884 kB
Depends: libc6 (>= 2.38), libpcap0.8t64 (>= 0.9.8)
Homepage: https://github.com/netdiscover-scanner/netdiscover
Download-Size: 614 kB
APT-Sources: http://jp.archive.ubuntu.com/ubuntu noble/universe amd64 Packages
Description: active/passive network address scanner using ARP requests
Netdiscover is an active/passive address reconnaissance tool, mainly
developed for those wireless networks without dhcp server, when you
are wardriving. It can be also used on hub/switched networks.
.
Built on top of libnet and libpcap, it can passively detect online
hosts, or search for them, by actively sending ARP requests.
.
Netdiscover can also be used to inspect your network ARP traffic,
or find network addresses using auto scan mode, which will scan for
common local networks.
.
Netdiscover uses the OUI table to show the vendor of the each MAC
address discovered and is very useful for security checks or in
pentests.インストール前に、apt showコマンドでNetdiscoverのパッケージ情報を確認しておきましょう。
インストール状況の確認
$ apt list --installed | grep netdiscover念のため、インストールされていないことを確認します。Netdiscoverがインストールされていない場合、何も出力されません。
既にインストール済みの場合、以下の結果が表示されます。
$ apt list --installed | grep netdiscover
netdiscover/noble,now 0.10-3build2 amd64 [インストール済み]Netdiscoverのインストール
$ sudo apt install netdiscoverNetdiscoverをインストールします。
インストール後の確認
# 実行ファイルの配置場所
$ which netdiscover
/usr/sbin/netdiscover
# バージョン情報
$ netdiscover -h
Netdiscover 0.10 [Active/passive ARP reconnaissance tool]
Written by: Jaime Penalba <jpenalbae@gmail.com>
〜 以下、省略 〜Netdiscoverの使い方

Netdiscoverはコマンドラインインターフェース(CLI)ツールのため、ターミナル上でコマンドを実行します。
基本構文
$ sudo netdiscover [オプション]Netdiscoverの実行には、sudo(root権限)が必要です。
シンプルな実行例
$ sudo netdiscoverオプションを指定しない場合、自動的にネットワークインターフェースを選択し、インタラクティブモードでアクティブスキャンを実行します。
| ネットワークインタフェース | 最初に認識したインターフェースを自動選択 |
|---|---|
| スキャン範囲 | 既定値(192.168.0.0/16、172.16.0.0/12、10.0.0.0/8) |
| 起動モード | インタラクティブモード |
| スキャン方式 | アクティブスキャン |
ネットワークインターフェースの指定
どのインターフェースでスキャンを実行するかを明示的に指定します。
$ sudo netdiscover -i <インターフェース名>-i:ネットワークインターフェース名
インターフェースを指定しない場合、最初に認識したインターフェースを自動選択します。ただし、複数のNICが存在する環境やVPN接続中の環境では、意図しないインターフェースが選択される可能性があるため、明示的に指定することを推奨します。
利用可能なネットワークインターフェースは、ip aやifconfigコマンドで確認できます。
$ ip a
or
$ ifconfigスキャン範囲の指定
スキャン対象のIPアドレス範囲は、CIDR表記により指定します。
$ sudo netdiscover -r <IPアドレス/サブネットマスク>-r:スキャン対象のIPアドレス範囲(CIDR表記)
-r(スキャン範囲)、-p(パッシブモード)、-l(スキャンリスト)のいずれのオプションも指定していない場合、標準的なプライベートLANアドレス(192.168.0.0/16、172.16.0.0/12、10.0.0.0/8)を対象にスキャンを実行します。
インタラクティブモードと非インタラクティブモード
Netdiscoverには、実行時の操作方法として「インタラクティブモード」と「非インタラクティブモード」の2種類があります。
インタラクティブモード
インタラクティブモードは、Netdiscoverのデフォルトの動作モードです。スキャン実行中に検出されたホストがリアルタイム表示され、またキーボード操作によって表示内容を制御できます。
- 画面操作
h:ヘルプを表示j:下へスクロール(または下矢印)k:上へスクロール(または上矢印).:ページを上にスクロール,:ページを下へスクロールq:netdiscoverを終了(またはヘルプ画面を閉じる)
- 画面表示
a:ARP応答リストを表示r:ARP要求リストを表示u:検出したホストを表示
非インタラクティブモード
非インタラクティブモードでは、スキャン結果を標準出力に出力した後、自動的にプログラムを終了します。
$ sudo netdiscover -P-P:非インタラクティブモードで実行する
非インタラクティブモードの最大の特徴は、シェルスクリプトや自動化ツールと組み合わせた利用が可能な点です。例えば、cronジョブによる定期的なホスト検出や、他のコマンドとパイプ接続した結果の加工など、バッチ処理的な用途に適しています。
アクティブスキャンとパッシブスキャン
Netdiscoverは「アクティブスキャン」と「パッシブスキャン」の2種類のスキャン方式をサポートしています。
アクティブスキャン
アクティブスキャンは、対象ネットワークに対してARPリクエストを送信し、応答結果からホストの存在を特定します。
$ sudo netdiscoverNetdiscoverのデフォルトは、アクティブスキャンです。
パッシブスキャン
パッシブスキャンは、自らパケットを送信せず、ネットワーク上を流れるARPパケットを受動的にキャプチャすることでホストを検出します。
$ sudo netdiscover -p-p:パッシブスキャン
パッシブスキャンのメリットは、自らパケットを一切送信しないため、ネットワークに負荷をかけない点です。(本番稼働中の環境でも安全に利用可能)
デメリットとしては、ARPパケットが発生するまで検出できないため、通信が少ないホストや待機状態のホストは発見できない場合がある点、また、結果が得られるまでに時間がかかる点が挙げられます。
VirtualBoxのホストオンリーアダプターの場合、デフォルトではプロミスキャスモードが無効になっています。プロミスキャスモードでパケットを受信する場合、プロミスキャスモードを有効にして下さい。

送信間隔・送信回数の指定
Netdiscoverでは、ARPリクエストの送信間隔と送信回数を調整するオプションが用意されています。これらを適切に設定することで、ネットワークへの負荷を制御しながら、スキャンの精度を高めることができます。
送信間隔の指定
$ sudo netdiscover -s <ミリ秒>-s:各ARPリクエスト間のスリープ時間(単位:ミリ秒) ※デフォルト:1ミリ秒
送信間隔を短くするとスキャン速度は上がりますが、ネットワークへの負荷が増大します。
送信回数の指定
$ sudo netdiscover -c <回数>-c:同一IPに対するARPリクエスト送信回数
各ホストへのARPリクエストの送信回数を指定します。(デフォルト:1回)
送信回数を増やすことで、パケットロスが発生しやすい環境でも、より確実にホストを検出できるようになります。
実行結果のファイル出力
Netdiscoverにはファイル出力機能が備わっていないため、実行結果を保存する場合はリダイレクトまたはteeコマンドを使用します。
$ sudo netdiscover -P > result.txt
$ sudo netdiscover -P | tee result.txt-P:非インタラクティブモード
インタラクティブモードではリアルタイム表示が主目的のため、ファイル出力には非インタラクティブモードを使用します。
オプション一覧
| オプション | 引数 | 説明 |
|---|---|---|
| -i | device | 使用するネットワークインターフェースを指定 |
| -r | range | スキャン対象のIPレンジを指定(CIDR形式) |
| -l | file | スキャン対象のIPレンジをファイルから読み込む(1行1レンジ) |
| -p | - | パッシブモード(パケット送信せず、監視のみ) |
| -m | file | MACアドレスとホスト名のリスト |
| -F | filter | BPF(Berkeley Packet Filter)フィルタ(デフォルト:arp) |
| -s | time | ARPリクエスト送信間隔(ミリ秒)(デフォルト:1ミリ秒) |
| -c | count | 各ARPリクエストの送信回数(デフォルト:1回) |
| -n | node | 送信元IPアドレスの第4オクテット(範囲:2-253、デフォルト:67) |
| -d | - | ホームディレクトリの設定ファイル(自動スキャン、高速スキャン)を無効 |
| -R | - | 権限チェックをスキップ(rootまたは必要な権限を持っているとみなす) |
| -f | - | 高速スキャンモード |
| -P | - | 非インタラクティブモード |
| -L | - | 非インタラクティブモードで実行後、パッシブモードを継続 |
| -N | - | ヘッダーを表示しない(-Pまたは-L指定時のみ有効) |
| -S | - | 各リクエスト間ではなく、255のホストをスキャンした後にスリープする(非推奨) |
【比較検証】Netdiscover vs Nmap
このセクションでは、VirtualBox上に構築した仮想ネットワーク環境を使い、NetdiscoverとNmapを同一条件で実行し、その結果を比較します。

検証環境のシステム構成
| 仮想化ソフトウェア | VirtualBox 7.2.6 |
|---|---|
| 仮想ネットワーク | ホストオンリーネットワーク |
| ネットワークアドレス | 192.168.10.0/24 |
| ネットワークアダプター | 192.168.10.1(VirtualBox Host-Only Ethernet Adapter) |
VirtualBoxのホストオンリーネットワークを使用し、仮想マシン同士が同一セグメントで通信できる閉じたネットワークを構築しています。
仮想マシン一覧
| IPアドレス | OS | 備考 |
|---|---|---|
| 192.168.10.11 | Kali Linux 2026.1 | スキャン実行 |
| 192.168.10.101 | Metasploitable2 | |
| 192.168.10.102 | OWASP BWA | |
| 192.168.10.105 | Ubuntu 24.04 LTS | |
| 192.168.10.1 | ネットワークアダプター |
- スキャン(Netdiscover / Nmap)は、Kali Linux
192.168.10.11から実行します。 - スキャン対象のネットワーク範囲は、
192.168.10.0/24です。
Netdiscoverを実行する
まず、Kali Linuxで以下のコマンドを実行し、対象ネットワーク192.168.10.0/24に接続されているホストの検出を行います。
$ sudo netdiscover -i eth0 -r 192.168.10.0/24 -P-i:ネットワークインターフェース-r:スキャン対象のネットワークレンジ-P:非インタラクティブモード(スキャン完了後、プログラムを終了する)
実行結果は、以下のとおりです。
_____________________________________________________________________________
IP At MAC Address Count Len MAC Vendor / Hostname
-----------------------------------------------------------------------------
192.168.10.1 0a:00:27:00:00:13 1 60 Unknown vendor
192.168.10.101 08:00:27:0e:b7:7f 1 60 PCS Systemtechnik GmbH
192.168.10.102 08:00:27:fd:a6:22 1 60 PCS Systemtechnik GmbH
192.168.10.105 08:00:27:4e:5e:83 1 60 PCS Systemtechnik GmbH
-- Active scan completed, 4 Hosts found.PCS Systemtechnik GmbHは、VirtualBoxの仮想NICに割り当てられているMACアドレスのベンダー名です。
Nmapを実行する
次に同じネットワークレンジに対して、Nmapを用いたホスト検出を実施します。
$ nmap -sn -PR 192.168.10.0/24-sn:ポートスキャンを行わず、ホスト検出のみ実施-PR:ARPスキャン
実行結果は、以下のとおりです。
Starting Nmap 7.99 ( https://nmap.org ) at 2026-04-27 13:53 +0900
Nmap scan report for 192.168.10.1
Host is up (0.00037s latency).
MAC Address: 0A:00:27:00:00:13 (Unknown)
Nmap scan report for 192.168.10.101
Host is up (0.00039s latency).
MAC Address: 08:00:27:0E:B7:7F (Oracle VirtualBox virtual NIC)
Nmap scan report for 192.168.10.102
Host is up (0.00062s latency).
MAC Address: 08:00:27:FD:A6:22 (Oracle VirtualBox virtual NIC)
Nmap scan report for 192.168.10.105
Host is up (0.00071s latency).
MAC Address: 08:00:27:4E:5E:83 (Oracle VirtualBox virtual NIC)
Nmap scan report for 192.168.10.11
Host is up.
Nmap done: 256 IP addresses (5 hosts up) scanned in 3.01 secondsNmapでは5台のホストが検出されました。Nmapを実行したKali Linux自身192.168.10.11も含まれています。
NetdiscoverとNmapの実行結果を比較
検出結果の比較
| 検出対象ホスト | Netdiscover | Nmap(-sn -PR) |
|---|---|---|
| 192.168.10.11(スキャン元) | - | 検出 |
| 192.168.10.101(Metasploitable2) | 検出 | 検出 |
| 192.168.10.102(OWASP BWA) | 検出 | 検出 |
| 192.168.10.105(Ubuntu) | 検出 | 検出 |
| 192.168.10.1(ネットワークアダプター) | 検出 | 検出 |
機能・性能の比較
| 比較項目 | Netdiscover | Nmap(-sn -PR) |
|---|---|---|
| 検出ホスト数 | 4台 | 5台(スキャン元ホスト含む) |
| スキャン元ホスト | 含まない | 含む |
| MACアドレス表示 | あり | あり |
| ベンダー表記 | PCS Systemtechnik GmbH | Oracle VirtualBox virtual NIC |
| 各ホストの応答時間の表示 | なし | あり(例.0.00039s) |
| スキャン所要時間の表示 | なし | あり(例.3.01 seconds) |
| 出力フォーマット | 一覧形式(シンプル) | ホスト単位の詳細表示 |
- スキャン元ホストを除き、検出されたホスト数は一致しました。これは、どちらもARPベースでスキャンしているためです。
- ただし、体感として以下の違いがありました。
- Netdiscover:ホストを検出するとリアルタイム表示
- Nmap:一定時間後に結果をまとめて出力
考察
今回の比較検証から、以下の点が明らかになりました。
ARPスキャンの精度は両ツールで同等
同一ネットワーク内のホスト検出において、ARPスキャンを使用する限り、NetdiscoverとNmapの検出精度に実質的な差はありませんでした。どちらも同じ4台のホストを漏れなく検出しており、ARPプロトコルの特性上(同一セグメント内では応答をブロックすることが困難)、ホスト検出の網羅性は高いと言えます。
用途に応じたツール選択が重要
Netdiscoverは、シンプルな一覧出力によって「今このネットワークに何台いるか」を素早く把握するのに適しています。特に、-pオプションによるパッシブモードでは、ARPパケットを送出せずにトラフィックを監視するだけでホストを検出できるため、ネットワーク負荷を最小限に抑えたい場面での活用が考えられます。
一方Nmapは、OS推定・ポート状態・バージョン情報など、後続の調査に必要な情報を一連のコマンドで取得できる点が優れています。ホスト探索からサービス調査まで一貫して実施したい場合は、Nmapが適しています。
MACベンダーデータベースの差異
両ツールで同一MACアドレスに対するベンダー表記が異なった点(「PCS Systemtechnik GmbH」vs「Oracle VirtualBox virtual NIC」)は、OUIデータベースのバージョンや管理元の違いによるものです。実務ではベンダー名の表記のみを根拠に機器種別を断定することは避け、複数の情報源を組み合わせて判断することが求められます。
