LinuxでIPアドレスからMACアドレスを解決する


39

ホストのIPアドレスと対応するMACアドレスとのマッピングの詳細を保持するファイルを作成する必要があるbashスクリプトを作成する必要があります。

ホストのIPアドレスが利用可能なときに、(リモート)ホストのMACアドレスを見つけることができる方法はありますか?

回答:


36

特定のIPアドレスのMACアドレスarpを調べるだけの場合は、システムに1回ping を実行すると、コマンドを使用して検索できます。

$ ping skinner -c 1
PING skinner.bubba.net (192.168.1.3) 56(84) bytes of data.
64 bytes from skinner.bubba.net (192.168.1.3): icmp_seq=1 ttl=64 time=3.09 ms

--- skinner.bubba.net ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 3.097/3.097/3.097/0.000 ms

次に、ARPテーブルを調べます。

$ arp -a
skinner.bubba.net (192.168.1.3) at 00:19:d1:e8:4c:95 [ether] on wlp3s0

MACアドレスのLAN全体をスイープする場合は、コマンドラインツールfingを使用して実行できます。通常はインストールされないため、ダウンロードして手動でインストールする必要があります。

$ sudo fing 10.9.8.0/24

    指の例

IPを使用する

使用可能なコマンドarpfingコマンドがない場合は、ip neigh代わりにiproute2のコマンドを使用してシステムのARPテーブルを表示できます。

$ ip neigh
192.168.1.61 dev eth0 lladdr b8:27:eb:87:74:11 REACHABLE
192.168.1.70 dev eth0 lladdr 30:b5:c2:3d:6c:37 STALE
192.168.1.95 dev eth0 lladdr f0:18:98:1d:26:e2 REACHABLE
192.168.1.2 dev eth0 lladdr 14:cc:20:d4:56:2a STALE
192.168.1.10 dev eth0 lladdr 00:22:15:91:c1:2d REACHABLE

参照資料


これは古い答えであることは知っていますが、Fingがどのように実装されているかについての洞察はありますか?私はこのネットワーク層とそれを監視するツールについて学ぼうとしています。
akaphenom

1
@akaphenom新しい質問がある場合は、コメントしてください。コメントはそのためのものではありません。
slm

arp廃止されていませんか?どうすればこれを行うことができipますか?
math2001

1
@ math2001-5年前ではなく、の使用方法を示す例を追加しましたip
slm

8

arp次のコマンドを使用できます:

arp -an

ただし、このコマンドはLANでのみ使用できます。リモートホストのMACアドレスを調べる場合は、何らかのツールを使用してパケットをキャプチャしtcpdump、結果を解析する必要があります。


2
tcpdump(8)ローカルMAC(つまり、最後のレッグルーターのMAC)のみが表示されます。入力パケットのMAC層ヘッダーはルーターによって取り除かれ、新しいパケットが発信パケットに追加されます。
フォンブランド

5

これはaskubuntuの私の質問と回答からです

次のコマンドを使用できます

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


-sPは「scanPing」用であり、nmapのバージョンでは決して-snと思われます。
meawoppl

4

アーピング

arping -I <interface> -c 1 <host>

コマンドは、応答でMACアドレスを返す必要があります。何かのようなもの、

$ arping -I eth0 -c1 192.168.1.2
ARPING 192.168.1.2 from 192.168.1.5 eth0
Unicast reply from 192.168.1.2 [08:01:27:38:EF:32]  0.746ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)

arpingiputils-arpingDebianのパッケージで提供されます。


arping-Iオプションを使用して、使用するインターフェイスを指定する必要もあります。
スティーブンキット

最初の応答後にarping -fを使用して終了できます。
ライアングリッグス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.