shinobe179の日記

パケットの気持ちになって考えるのはもうやめだ

【ネットワーク】 netdiscover でサブネット内のノードを把握する

はじめに

我が家の インターネット はマンション標準装備のものなんですが、ルーターの管理画面を見られないので、 Wi-Fi にどんな機器が繋がっているのかが分かりません。そこで、 netdiscover を使って同サブネット上に存在するホストを確認してみます。

使い方

インストール

$ sudo apt update
$ sudo apt install netdiscover

実行

$ sudo netdiscover -i wlp3s0 -r 192.168.0.0/16

実際の実行結果は以下のような感じ。

$ sudo netdiscover -i wlp3s0 -r 192.168.0.0/16 
 Currently scanning: Finished!   |   Screen View: Unique Hosts                                                               
                                                                                                                             
 9 Captured ARP Req/Rep packets, from 8 hosts.   Total size: 502                                                             
 _____________________________________________________________________________
   IP            At MAC Address     Count     Len  MAC Vendor / Hostname      
 -----------------------------------------------------------------------------
 192.168.10.231  00:60:b9:XX:XX:XX      1      60  NEC Platforms, Ltd                                                        
 192.168.10.20   24:f0:94:XX:XX:XX      1      42  Unknown vendor                                                            
 192.168.10.27   cc:9e:a2:XX:XX:XX      1      42  Unknown vendor                                                            
 192.168.10.35   cc:f7:35:XX:XX:XX      1      42  Unknown vendor                                                            
 192.168.10.24   c0:e4:34:XX:XX:XX      1     108  Unknown vendor                                                            
 192.168.10.33   4c:56:9d:XX:XX:XX      1      42  Unknown vendor                                                            
 192.168.10.26   bc:83:85:XX:XX:XX      1      42  Unknown vendor                                                            
 192.168.10.234  28:3b:82:XX:XX:XX      2     124  Unknown vendor                                                            

MAC アドレスのベンダーコード

一応 NEC だけは表示してくれましたが、それ以外は Unknown になってしまいました。

以下の記事を参考に、ベンダーコードをベンダー名に変換するコマンド「m2v」を作ってあるので、それで確認してみます。

pslabo.hatenablog.com

リクエスト間を1秒以上開ける必要があるため、元のコードに「sleep 1」を加えています。

#!/bin/sh

# m2v translates MAC address to vendor name.
# cf. https://pslabo.hatenablog.com/entry/2016/03/18/「MACアドレスからベンダーを検索して表示するコマ

if [ $# = 0 ]; then
  echo "[!] Give me args.\nm2v translates MAC address to vendor name.\nusage: m2v mac-address ..."
  exit 1
fi

while [ $# -gt 0 ]; do
  echo -n "$1="
  curl "http://api.macvendors.com/$1"
  echo ""
  shift
  sleep 1
done
$ m2v 00:60:b9:XX:XX:XX 24:f0:94:XX:XX:XX cc:9e:a2:XX:XX:XX cc:f7:35:XX:XX:XX c0:e4:34:XX:XX:XX 4c:56:9d:XX:XX:XX bc:83:85:XX:XX:XX 28:3b:82:XX:XX:XX
00:60:b9:XX:XX:XX=NEC Platforms, Ltd
24:f0:94:XX:XX:XX=Apple, Inc.
cc:9e:a2:XX:XX:XX=Amazon Technologies Inc.
cc:f7:35:XX:XX:XX=Amazon Technologies Inc.
c0:e4:34:XX:XX:XX=AzureWave Technology Inc.
4c:56:9d:XX:XX:XX=Apple, Inc.
bc:83:85:XX:XX:XX=Microsoft Corporation
28:3b:82:XX:XX:XX=D-Link International

AzureWave って何…?と思いましたが、おそらく最近我が家にやって来た Roomba であると思われます。

github.com