web-dev-qa-db-ja.com

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

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

80
Maythux

これには 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エコー要求、TCP SYNからポート443、TCPで構成されます_ポート80へのACK、およびデフォルトでICMPタイムスタンプ要求。

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

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

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

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

61
c0rp

arp willslowlyは、アクティブな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

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


編集 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は優れたツールです(特に、次に実行したいポートスキャンに適しています)が、この問題に対してはまだ少し不器用です(そして少し遅い)。シャーリーと呼ばないでください。
45
Oli

これには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
36
jcrigby

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
16
user260894

GUI

試すことができます avahi-discover Install avahi-discover

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

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

コマンドライン

ターミナルでこのコマンドを使用できます。

avahi-browse -a -t -d local

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

9
kiri
  1. 最初にネットワークをスキャンして、nmap -sn 1.2.3.4/24またはfping -g 1.2.3.4/24を使用して、どのホストが到達可能/オンラインであるかを確認します

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

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

5
far4d

NetBIOSプロトコル がサポートされている場合は、使用したい

nbtscan 192.168.1.1-192.168.1.255

3
Silveri

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

arpステートメントを使用してawk出力を解析し、HTML出力を生成するシェルスクリプトを作成しました。スクリプトを実行し、出力を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"

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

2
user38537

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

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の範囲。あなたのものと交換してください

2
Maythux

NmapとARPコンボの使用にうんざりした後、特定のIP範囲のすべてのMACアドレスを照会するこの小さなプログラムを作成しました: https://github.com/drkblog/findmacs

1
drk.com.ar

arpを使用できます。

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

0
user93206