LAN内の端末の数や使用しているIPアドレスなどを調べる用途にもってこいなarp-scanというコマンドを知りました。
さっそく使ってみました。
環境
- Raspberry Pi OS
1234567891011$ cat /etc/os-releasePRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"NAME="Raspbian GNU/Linux"VERSION_ID="9"VERSION="9 (stretch)"VERSION_CODENAME=stretchID=raspbianID_LIKE=debianHOME_URL="http://www.raspbian.org/"SUPPORT_URL="http://www.raspbian.org/RaspbianForums"BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
今回はRaspberry Piでコマンド実行をしてみましたが、CentOSでもUbuntuでも使えることを経験済みです。 - バージョン
123456789101112131415$ arp-scan -Varp-scan 1.9Copyright (C) 2005-2013 Roy Hills, NTA Monitor Ltd.arp-scan comes with NO WARRANTY to the extent permitted by law.You may redistribute copies of arp-scan under the terms of the GNUGeneral Public License.For more information about these matters, see the file named COPYING.libpcap version 1.8.1$Id: arp-scan.c 19582 2013-04-28 17:11:17Z rsh $$Id: error.c 19550 2013-04-15 09:24:42Z rsh $$Id: wrappers.c 19550 2013-04-15 09:24:42Z rsh $$Id: utils.c 19550 2013-04-15 09:24:42Z rsh $$Id: link-packet-socket.c 19578 2013-04-25 15:44:27Z rsh $
事前準備
インストール
はじめから入っているタイプのコマンドではないので、インストールします。
1 |
$ sudo apt install arp-scan |
インターフェース確認
使い方の項にコマンドの使い方を書きますが、arp-scanコマンドを実行する端末のネットワークインターフェース情報が必要になるので、事前に確認しておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$ ip add show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether b8:27:eb:de:ca:b5 brd ff:ff:ff:ff:ff:ff inet 192.168.1.130/24 brd 192.168.1.255 scope global eth0 valid_lft forever preferred_lft forever inet6 2001:f72:60:5200:a374:1ec8:f8b8:7fb/64 scope global mngtmpaddr noprefixroute dynamic valid_lft 2591767sec preferred_lft 604567sec inet6 fe80::eb18:e57c:b13f:5a3a/64 scope link valid_lft forever preferred_lft forever |
上記の結果から、ネットワークインタフェース名は『eth0』だとわかりました。
LANの情報確認
arp-scanコマンドを実行する端末が所属するネットワーク情報も必要になります。
この情報もip add showから分かります。
1 2 3 |
$ ip add show ~省略~ inet 192.168.1.130/24 brd 192.168.1.255 scope global eth0 |
この結果から、この端末(Raspberry Pi)は192.168.1.0/24というネットワークに所属していることが分かりました。
arp-scanコマンドを実行してみる
LAN内の端末情報を調べるときのarp-scanの使い方について書いていきます。
使い方
arp-scanコマンドの基本的な使い方
1 |
sudo arp-scan -I [インターフェース名] [所属ネットワーク] |
実践
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
$ sudo arp-scan -I eth0 192.168.1.0/24 Interface: eth0, datalink type: EN10MB (Ethernet) Starting arp-scan 1.9 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/) 192.168.1.120 80:c1:6e:XX:XX:XX Hewlett Packard 192.168.1.22 e4:5f:01:XX:XX:XX (Unknown) 192.168.1.22 e4:5f:01:XX:XX:XX (Unknown) (DUP: 2) 192.168.1.45 00:f3:61:XX:XX:XX (Unknown) 192.168.1.35 34:29:8f:XX:XX:XX (Unknown) 192.168.1.55 1c:bf:ce:XX:XX:XX (Unknown) 192.168.1.62 c0:06:c3:XX:XX:XX (Unknown) 192.168.1.59 44:85:00:XX:XX:XX Intel Corporate 192.168.1.88 ac:67:84:XX:XX:XX (Unknown) 192.168.1.135 e0:69:95:XX:XX:XX PEGATRON CORPORATION 192.168.1.129 d4:f5:47:XX:XX:XX (Unknown) 192.168.1.119 80:c1:6e:XX:XX:XX Hewlett Packard 192.168.1.101 c6:e7:b9:XX:XX:XX (Unknown) 192.168.1.140 ec:f0:0e:XX:XX:XX Abocom 192.168.1.144 e0:ce:c3:XX:XX:XX ASKEY COMPUTER CORP 192.168.1.145 f4:a9:97:XX:XX:XX (Unknown) 192.168.1.252 24:4b:fe:XX:XX:XX (Unknown) 192.168.1.255 ac:67:84:XX:XX:XX (Unknown) 192.168.1.250 dc:fb:02:XX:XX:XX Buffalo Inc. 22 packets received by filter, 0 packets dropped by kernel Ending arp-scan 1.9: 256 hosts scanned in 3.377 seconds (75.81 hosts/sec). 19 responded |
ネットワーク上に存在している端末の数、IPアドレスとMACアドレスが分かりました。
私の結果だと最終行の最後に『19 responded』とあるので19のデバイスが存在しているように見えますが、『(DUP: 2)』の表記から分かるように、重複して応答しているデバイスがあるので、実際には18というデバイス数が正しいです。
また、IPアドレスの並びはバージョニングソートしないと見づらいですね。
DUPについて↓
LinuxからIntel AMTのPCにpingしたらDUP!が出現した
Intel AMTを設定済みのHP Compaq 8200 Elite sffにLinux(Raspberry Pi)からpingコマンドを実行すると以下のような結果が表示されました。 $ ping ...
IPアドレスをキレイに並び替える方法↓
Linux sort -V で IPアドレスをソートする
今更ながらですが、sortのVオプションがとても便利だったので。 以下のようなIPアドレスの一覧があったとします。 cat /tmp/list 192.168.1.40 192.168.1.55 19...
LAN内のデバイス情報を手軽に取得できるので便利です!
ネットワークインタフェースのメーカー名が表示されるのもちょっと面白い。
コメント