【オプション一覧つき】Netdiscoverの使い方を徹底解説!

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の違い

比較項目NetdiscoverNmap
主な用途ホスト検出(IP・MACアドレスの特定)ホスト探索・ポートスキャン・サービス検出・OS推定など
使用プロトコルARPICMP・TCP・UDP・ARPなど
スキャン対象ローカルのみローカル・リモート問わず広範囲に対応
パッシブモード対応(トラフィック監視)非対応(必ず能動的なパケットを送信)
出力情報IPアドレス・MACアドレス・ベンダー名ポート状態・サービス・OS・バージョン情報など
ネットワーク負荷低い比較的高い(スキャン設定による)

Netdiscoverは「どのホストが存在するか」を把握するツール、Nmapは「そのホストが何を提供しているか」を分析するツールと整理すると理解しやすいです。両者は競合ではなく補完関係にあります。それぞれのツールの強みを組み合わせることで、調査の効率と精度を高められます。

使い分けの目安
  • Netdiscoverが適している場面
    • ローカルネットワーク内で「どのIPアドレス、どのMACアドレスのデバイスが存在するか」を素早く把握したいとき
    • 接続ホストのベンダー情報を手軽に確認したいとき
    • パッシブモードで静かにトラフィックを監視しながらホストを特定したいとき
  • Nmapが適している場面
    • 開放ポートやサービスのバージョン情報まで調査したいとき
    • OSの種別推定やNSEスクリプトによる詳細な検査を行いたいとき
    • ルーターを越えた異なるセグメントのホストもスキャン対象に含めたいとき

利用上の注意事項

Netdiscoverは軽量で扱いやすいツールですが、使用にあたっては以下の点に注意が必要です。

許可されたネットワークでのみ使用する

Netdiscoverを実行すると、ARPパケットがネットワーク上に送信されます。自身が管理権限を持つネットワーク、または許可を得たネットワーク以外での使用は、不正アクセス禁止法など法令に抵触する恐れがあります。

脆弱性診断やペネトレーションテストの学習目的でNetdiscoverを使用する場合、VirtualBoxやVMwareなどで構築したクローズドな仮想環境で実施することを推奨します。

パッシブモードでは検出漏れが発生する

パッシブモードは通信を待ち受ける方式のため、以下の特徴があります。

  • トラフィックが少ない環境では検出率が低下
  • 未通信のホストは検出できない

取得した情報の取り扱いに注意する

スキャン結果には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

Kali Linuxのアプリケーションメニュー

Ubuntuの場合

一般的なディストリビューションでは、Netdiscoverはプリインストールされていません。Ubuntuの場合、公式リポジトリに含まれているため、aptコマンドでインストール可能です。

STEP

パッケージリストの更新

$ sudo apt update

まず、パッケージリストを最新の状態に更新します。

STEP

パッケージ情報の確認

$ 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のパッケージ情報を確認しておきましょう。

バージョンや依存関係、パッケージの概要などを把握できます。

STEP

インストール状況の確認

$ apt list --installed | grep netdiscover

念のため、インストールされていないことを確認します。Netdiscoverがインストールされていない場合、何も出力されません。

既にインストール済みの場合、以下の結果が表示されます。

$ apt list --installed | grep netdiscover
netdiscover/noble,now 0.10-3build2 amd64 [インストール済み]
STEP

Netdiscoverのインストール

$ sudo apt install netdiscover

Netdiscoverをインストールします。

STEP

インストール後の確認

# 実行ファイルの配置場所
$ 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)
インタラクティブモードのヘルプ画面

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 aifconfigコマンドで確認できます。

$ ip a
or
$ ifconfig

スキャン範囲の指定

スキャン対象のIPアドレス範囲は、CIDR表記により指定します。

$ sudo netdiscover -r <IPアドレス/サブネットマスク>

-r:スキャン対象のIPアドレス範囲(CIDR表記)

-r(スキャン範囲)-p(パッシブモード)-l(スキャンリスト)のいずれのオプションも指定していない場合、標準的なプライベートLANアドレス(192.168.0.0/16172.16.0.0/1210.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 netdiscover

Netdiscoverのデフォルトは、アクティブスキャンです。

応答ベースのため誤検出が少ない。

パッシブスキャン

パッシブスキャンは、自らパケットを送信せず、ネットワーク上を流れるARPパケットを受動的にキャプチャすることでホストを検出します。

$ sudo netdiscover -p

-p:パッシブスキャン

パッシブスキャンのメリットは、自らパケットを一切送信しないため、ネットワークに負荷をかけない点です。(本番稼働中の環境でも安全に利用可能)

デメリットとしては、ARPパケットが発生するまで検出できないため、通信が少ないホストや待機状態のホストは発見できない場合がある点、また、結果が得られるまでに時間がかかる点が挙げられます。

VirtualBoxの仮想ネットワークを使用している場合

VirtualBoxのホストオンリーアダプターの場合、デフォルトではプロミスキャスモードが無効になっています。プロミスキャスモードでパケットを受信する場合、プロミスキャスモードを有効にして下さい。

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:非インタラクティブモード

インタラクティブモードではリアルタイム表示が主目的のため、ファイル出力には非インタラクティブモードを使用します。

オプション一覧

オプション引数説明
-idevice使用するネットワークインターフェースを指定
-rrangeスキャン対象のIPレンジを指定(CIDR形式)
-lfileスキャン対象のIPレンジをファイルから読み込む(1行1レンジ)
-p-パッシブモード(パケット送信せず、監視のみ)
-mfileMACアドレスとホスト名のリスト
-FfilterBPF(Berkeley Packet Filter)フィルタ(デフォルト:arp)
-stimeARPリクエスト送信間隔(ミリ秒)(デフォルト:1ミリ秒)
-ccount各ARPリクエストの送信回数(デフォルト:1回)
-nnode送信元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.11Kali Linux 2026.1スキャン実行
192.168.10.101Metasploitable2
192.168.10.102OWASP BWA
192.168.10.105Ubuntu 24.04 LTS
192.168.10.1ネットワークアダプター
  • スキャン(Netdiscover / Nmap)は、Kali Linux192.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 seconds

Nmapでは5台のホストが検出されました。Nmapを実行したKali Linux自身192.168.10.11も含まれています。

NetdiscoverとNmapの実行結果を比較

検出結果の比較

検出対象ホストNetdiscoverNmap(-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(ネットワークアダプター)検出検出

機能・性能の比較

比較項目NetdiscoverNmap(-sn -PR)
検出ホスト数4台5台(スキャン元ホスト含む)
スキャン元ホスト含まない含む
MACアドレス表示ありあり
ベンダー表記PCS Systemtechnik GmbHOracle 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データベースのバージョンや管理元の違いによるものです。実務ではベンダー名の表記のみを根拠に機器種別を断定することは避け、複数の情報源を組み合わせて判断することが求められます。

デフォラボ

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
目次