ローカルネットワーク(LAN)内のすべてのMACアドレスとそれらに関連付けられたIPアドレスを一覧表示する


84

ローカルネットワーク(LAN)に接続されているマシンのすべてのMACアドレスとそれに関連付けられたIPアドレスを一覧表示するにはどうすればよいですか?


6
このequipement後ろMACおよびIPアドレスを取得することはできませんとすぐにレベル3のネットワーク層equipement throught行くようにということを理解することが重要です
Kiwy

なぜ!疑問符の後に配置するのですか?これは必要ではなく、質問が叫ばれたり重要度が高い場合にのみ使用されます。
キリ14年

@ minerz029それを明確にしてくれてありがとう
Maythux 14年

1
sudo tail -f /var/log/messages、次にMACアドレスを検索しようとしているデバイスを取り外してから再度接続するか、メッセージをgrep / readで読み取ってデバイスを検索します。
IceArdor

回答:


63

これにはNmapユーティリティを使用できます。Nmapは無料のネットワークスキャナーユーティリティです。

ちょうど試してください:

sudo nmap -sn 192.168.1.0/24

ネットワーク識別子とサブネットマスクを置き換えてください。

ネットワークIDとサブネットマスクを見つける方法

コマンドを使用ip a

bash~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether c4:85:08:94:ee:9a brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.66/24 brd 192.168.3.255 scope global wlan0
    inet6 fe80::c685:8ff:fe94:ee9a/64 scope link valid_lft forever preferred_lft forever

ここで、ポイント2にwlan0デバイスがあります。それは言うinet 192.168.3.66/24 brd 192.168.3.255 scope global wlan0:IPアドレス、192.168.3.66サブネットマスク:24。ネットワークIDは192.168.3.0、最後の数字を0に置き換えるだけです。

または男がnmap言うように:

sudo nmap -sn 192.168.1.0/24

これは、manページnmap(1)からの引用です:

-sn (No port scan)

このオプションは、ホストの検出後にポートスキャンを実行せず、スキャンに応答した使用可能なホストのみを出力するようにNmapに指示します。これは「pingスキャン」として知られていますが、tracerouteおよびNSEホストスクリプトの実行を要求することもできます。

デフォルトでは、これはリストスキャンよりも1段階だけ邪魔になり、多くの場合同じ目的で使用できます。注目を集めることなく、ターゲットネットワークの軽度の偵察を可能にします。

起動しているホストの数を知ることは、すべてのIPアドレスとホスト名のリストスキャンによって提供されるリストよりも攻撃者にとって価値があります。

多くの場合、システム管理者はこのオプションも有用だと感じています。ネットワーク上で使用可能なマシンをカウントしたり、サーバーの可用性を監視したりするのに簡単に使用できます。これはしばしばpingスイープと呼ばれ、多くのホストがブロードキャストクエリに応答しないため、ブロードキャストアドレスにpingするよりも信頼性が高くなります。

デフォルトのホスト検出-snは、ICMPエコー要求、ポート443へのTCP SYN、ポート80へのTCP ACK、およびデフォルトのICMPタイムスタンプ要求で構成されます。

特権のないユーザーが実行すると、SYNパケットのみが(connect呼び出しを使用して)ターゲットのポート80および443に送信されます。

特権ユーザーがローカルイーサネットネットワーク上のターゲットをスキャンしようとすると、--send-ip指定されない限りARP要求が使用されます。この-snオプションは-P*-Pn柔軟性を高めるために、任意のディスカバリプローブタイプ(オプションを除く)と組み合わせることができます。

これらのプローブタイプとポート番号オプションのいずれかが使用されている場合、デフォルトのプローブは上書きされます。Nmapを実行しているソースホストとターゲットネットワークの間に厳密なファイアウォールが配置されている場合は、これらの高度な技術を使用することをお勧めします。そうしないと、ファイアウォールがプローブまたはその応答をドロップしたときに、ホストを見逃す可能性があります。

Nmapの以前のリリースでは、-snと呼ばれていました-sP


それは働いていない
Maythux

4
これは192.168.1.0/24、ユーザーのIPアドレス範囲に変更されるように調整する必要があります。
キリ14年

@ minerz029私は、IP変更でした確かに
Maythux

それが理由かどうかはわかりませんが、Linuxではnmap -sP 192.168.1.0/24pingスキャンに使用しています。
tiktak 14年

2
ネットワークからMACアドレスを読み取るためにルート特権が必要な理由を知っていますか?
マイケルアキリナ

45

arpアクティブなMACアドレスとIP、またはホスト名(ある場合)のリストがゆっくり返されます。速くしたい場合はarp -n、DNSルックアップをスキップする必要があります。解析する必要がある場合はarp -an、固定幅の列をスキップします。

$ arp
Address                  HWtype  HWaddress           Flags Mask            Iface
10.10.0.11               ether   00:04:ff:ff:ff:d0   C                     eth0
10.10.0.16               ether   00:04:ff:ff:ff:a6   C                     eth0
raspbmc.local            ether   00:1f:ff:ff:ff:9c   C                     eth0
10.10.0.19               ether   00:04:ff:ff:ff:c9   C                     eth0
10.10.0.12               ether   bc:f5:ff:ff:ff:93   C                     eth0
10.10.0.17               ether   00:04:ff:ff:ff:57   C                     eth0
10.10.0.1                ether   20:4e:ff:ff:ff:30   C                     eth0
HPF2257E.local           ether   a0:b3:ff:ff:ff:7e   C                     eth0
10.10.0.15               ether   00:04:ff:ff:ff:b9   C                     eth0
tim                      ether   00:22:ff:ff:ff:af   C                     eth0
10.10.0.13               ether   60:be:ff:ff:ff:e0   C                     eth0

それ以外の場合、ルーターはアクティブなデバイスのアイデアを提供できるはずです(ほとんどの場合)。


Per davidclのコメントを編集してください。この答えは、私が最初に望んだほど完璧ではありません。

arpある種の以前の連絡先に依存しています。しかし、私の意見では、最新のデバイスはすべてブロードキャストレベルで非常におしゃべりです(実際、wiresharkを見る必要があります-教育です)。(最初にネットワーク上のすべてのデバイスに10.10.0.255でpingを実行できるようにすると、おそらくデバイスの90 +%を取得します。)

私が何を意味するかについてのある種のアイデアを与えるために、上記の10.10.0.16は私たちのPVRです。PCとPVRの間に直接のやり取りはなく、PVRで実行されているサービスはありません(UPNP / DLNAもありません)。

すぐに議論を進めるために...

  • しかし、私のネットワークのハッカーはどうですか?!1
    ICMP pingもブロックできます。あらゆる種類のスキャンに対するすべての応答をブロックできます。
  • ああ、nmapそれでも間違いなく最善の解決策
    です。ここで実行すると、まだ4つのデバイスが欠落しています。ネットワーク上でアクティブな4つのデバイス。pingに応答しないか、nmapが応答するのに十分な時間待機していないかのどちらかです...わかりません。nmap(特に、次に実行したいポートスキャンの場合)優れたツールですが、この問題に対してはまだ少し不器用です(そして少し遅い)。シャーリーと呼ばないでください。

1
MACチェンジャーでMAC IDを変更した場合、元のIDを表示できますか?
rɑːdʒɑ

2
@BYEAskUbuntu MACチェンジャーを使用する場合、設定したとおりにMACが設定されます。すべてのネットワークユーザーにとって、その起源は一般に不明であるため、できません。
ルスラン14年

3
@Ruslanそれは私がそれらを消し去るのがただの妄想です...私は個人が彼らと何かをすることはかなり難しいだろうと確信していますが、誰があなたをストーキングしているのか決してわかりません。
オリ

9
私はこの答えに驚いています。「arp」は、ローカルネットワーク上のアクティブなMACアドレスのリストを表示しません。「arp」は、実行中のマシンと対話したマシンに対応するMACアドレスのリストを示します。ローカルマシンとネットワーク上の別のマシンの間で最近通信が行われていない場合、そのマシンは「arp」リストに表示されません。
davidcl

5
ネットワークで簡単なテストを行ったところ、arpには存在するデバイスの約25%しか表示されていません。arpを実行しているコンピューターが別のデバイスからパケットを受信して​​いない場合、arpリストには含まれません。nmapがネットワーク上で検出できなかったデバイスについてもっと知りたいです。nmapから隠す方法はありますが、デフォルトのnmapスキャンが非常に効果的であることがわかりました。とはいえ、デバイスがトラフィックを生成せず、リクエストに応答しない場合、それは見えないため、フェイルセーフの答えはありませんが、ほとんどのデバイスは何らかのタイプのリクエストに応答します。
davidcl

37

arp-scanはこれに使用します:

$ sudo arp-scan -l
Interface: eth0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.8.1 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
192.168.2.1     ec:1a:59:61:07:b2       (Unknown)
192.168.2.50    90:59:af:3d:6d:bc       (Unknown)
192.168.2.51    3c:97:0e:48:22:12       (Unknown)
192.168.2.52    00:18:31:87:8f:b0       Texas Instruments

4 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.8.1: 256 hosts scanned in 1.282 seconds (199.69 hosts/sec). 4 responded

1
あなたは、ネットワークインタフェースを指定したい場合は、無線のように、このコマンドを使用しますsudo arp-scan -l -I wlan0
HarlemSquirrel

はい、arp-scanは確かに「仕事に最適なツール」です。
mivk 14

これは私には機能しません...何らかの理由でデバイスが応答しません。
アンドリューワーグナー

arp-scanを機能させるにはbrew install arp-scan、OSX El Capitanでやらなければなりませんでした。
ジェームズキャンベル

17

を使用できますarp-scan

次のコマンドを使用してインストールします。

sudo apt-get install arp-scan

すべてのIPアドレスと関連するMACアドレスをリストするには、次を使用します。

sudo arp-scan --interface=eth0 --localnet

出力は次のようになります。

Interface: eth0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.8.1 with 16777216 hosts (http://www.nta-monitor.com/tools/arp-scan/)
192.168.1.3 38:60:77:29:31:36   (Unknown)
192.168.1.8 4c:72:b9:7c:bb:7e   (Unknown)
192.168.1.110   00:15:17:5f:d2:80   Intel Corporate
192.168.1.111   00:ff:88:5f:fd:f0   (Unknown)
192.168.1.153   00:15:17:5f:d2:82   Intel Corporate
192.168.1.180   52:54:00:70:04:02   QEMU
192.168.1.199   52:54:00:fe:7f:78   QEMU

1
これは...まだIPを持っていないデバイスを見つけていない
アンドリュー・ワグナー

9

GUI

avahi-discoveravahi-discoverをインストールするを試すことができます。

  1. このコマンドで(または上記のリンクをクリックして)インストールします:

    sudo apt-get install avahi-discover
    
  2. Avahi Zeroconf Browserを実行するかavahi-discover、ターミナルから実行します。
  3. ローカルネットワーク上のデバイスのリストを含むウィンドウが表示されます。
    MACアドレスは、角括弧内の文字列になります。

コマンドライン

このコマンドは端末で使用できます。

avahi-browse -a -t -d local

デフォルトでインストールされます。


1
これは、どのような種類のサービスも実行していないマシンのMACアドレスを表示するために機能しますか?
エリアケイガン14年

3
私の場合、これはネットワーク上のすべてのデバイスで機能するわけではありません。それはかなりきちんとしているが、avahi / upnpサービスなしではダムクライアントを表示しない。
オリ

5
  1. まず、ネットワークのスキャンを実行して、nmap -sn 1.2.3.4/24またはを使用して到達可能/オンラインのホストを確認しますfping -g 1.2.3.4/24

  2. 次に、を使用してIPアドレスに対応するMACアドレスを照会しますarping。先の擬似コード:

    for i in $(cat list-of-reachable-hosts)
    do 
        arping $i
    done
    
  3. 不正行為:ローカルスイッチのarpキャッシュを参照してください。それはあなたに素晴らしい概要を与えるはずです...


3

ケースではNetBIOSプロトコルがサポートされている、私が使用することを好みます

nbtscan 192.168.1.1-192.168.1.255


5
これは、NetBIOSプロトコル(WindowsおよびLinux + Samba)をサポートするクライアントのみを検出します。
エリック

2

私はこの投稿に興味をそそられました。私にはこれが必要でした。

ステートメントをarp使用して出力を解析し、awkHTML出力を生成するシェルスクリプトを作成しました。スクリプトを実行し、出力をHTMLファイルにリダイレクトすると、IP、完全なMACアドレス、およびIEEE OUIルックアップページへのリンクを示すHTMLファイルが残ります。これは、NIC製造業者を介してクライアントを決定するのに役立ちます。

printf "<html>\n<title>LAN IPs and their MACs</title>\n<body>\n"
arp -a | awk '{print $2,$4}' | awk -F'[().: ]' '{print $2"."$3"."$4"."$5,$6,$7":"$8":"$9":"$10":"$11":"$12,"<a href=\"http://standards.ieee.org/cgi-bin/ouisearch?"$7$8$9"\">IEEE OUI Lookup "$7"-"$8"-"$9"</a><br>"}'
printf "\n</body>\n</html>\n"

nmapARPテーブルにエントリがあるように、最初にLANでスキャンを実行すると役立ちます。うまくいけば、フォーマットが翻訳されました。これを小ぎれいにして、テキストを表形式にすることができます。


2

いくつかの作業と検索の後、私はこのコマンドを発見しました:

nmap -sP -PE -PA21,23,80,3389 192.168.1.*

nmap: ネットワーク探索ツールとセキュリティ/ポートスキャナー

-sP(ポートスキャンをスキップ)。このオプションは、ホストの検出後にポートスキャンを実行せず、スキャンに応答した使用可能なホストのみを出力するようにNmapに指示します。これは「pingスキャン」として知られていますが、tracerouteおよびNSEホストスクリプトの実行を要求することもできます。デフォルトでは、これはリストスキャンよりも1段階だけ邪魔になり、多くの場合同じ目的で使用できます。注目を集めることなく、ターゲットネットワークの軽度の偵察を可能にします。起動しているホストの数を知ることは、すべての単一IPおよびホスト名のリストスキャンで提供されるリストよりも攻撃者にとって価値があります。

-PE; -PP; -PM (ICMP Pingタイプ)。前述の異常なTCP、UDP、およびSCTPホスト検出タイプに加えて、Nmapはユビキタスpingプログラムによって送信された標準パケットを送信できます。Nmapは、ICMPタイプ8(エコー要求)パケットをターゲットIPアドレスに送信し、利用可能なホストからの戻り値としてタイプ0(エコー応答)を期待します。残念ながら、ネットワークエクスプローラーでは、 RFC 1122 [2]で要求されています。このため、ICMPのみのスキャンは、インターネット上の未知のターゲットに対して十分に信頼できることはほとんどありません。ただし、内部ネットワークを監視するシステム管理者にとっては、実用的で効率的なアプローチになる可能性があります。-PEオプションを使用して、このエコー要求の動作を有効にします。

-A(積極的なスキャンオプション)。このオプションは、追加の高度で積極的なオプションを有効にします。

21,23,80,3389 検索するポート

192.168.1.* IPの範囲。あなたのものと交換してください



0

を使用できますarp

これにより、MACとIPが表示されます。


これは、(pingなどによって)接続されたデバイスでのみ機能します。
ピーターモーテンセン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.