Linux arp-scanでLAN内のIPとMACアドレスを取得する

Linux
この記事は約7分で読めます。

 

LAN内の端末の数や使用しているIPアドレスなどを調べる用途にもってこいなarp-scanというコマンドを知りました。

 

さっそく使ってみました。

 

                 

環境

 

  • Raspberry Pi OS
    $ cat /etc/os-release 
    PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
    NAME="Raspbian GNU/Linux"
    VERSION_ID="9"
    VERSION="9 (stretch)"
    VERSION_CODENAME=stretch
    ID=raspbian
    ID_LIKE=debian
    HOME_URL="http://www.raspbian.org/"
    SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
    BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

    今回はRaspberry Piでコマンド実行をしてみましたが、CentOSでもUbuntuでも使えることを経験済みです。


  • バージョン
    $ arp-scan -V
    arp-scan 1.9
    
    Copyright (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 GNU
    General 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 $

 

 

 

事前準備

インストール

 

はじめから入っているタイプのコマンドではないので、インストールします。

$ sudo apt install arp-scan

 

 

インターフェース確認

 

使い方の項にコマンドの使い方を書きますが、arp-scanコマンドを実行する端末のネットワークインターフェース情報が必要になるので、事前に確認しておきます。

$ 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から分かります。

$ 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コマンドの基本的な使い方

sudo arp-scan -I [インターフェース名] [所属ネットワーク]

 

 

 

実践

 

 

$ 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アドレスの並びはバージョニングソートしないと見づらいですね。

 

LAN内のデバイス情報を手軽に取得できるので便利です!

ネットワークインタフェースのメーカー名が表示されるのもちょっと面白い。

コメント

タイトルとURLをコピーしました