PC と組み込み Linux デバイスは同じローカル ネットワークに接続されています (DHCP サーバーへのアクセス権はありませんが、IT 管理者がアクセス権を持っています)。組み込み Linux ボード上の UART をデバッグするためのアクセス権もありません。
デバイスの MAC ID はわかっています。では、MAC ID に基づいてデバイスの IP を取得する方法はありますか?
注: PC は Windows 7 を実行しています。
答え1
Windows マシンでは次のように入力できると思います:
arp -a
その時点で、コンピューターが認識しているすべての MAC アドレスと IP アドレスが一覧表示されます。
そこにリストされていない場合は、インストールを検討してくださいnmap
Windows マシンで、nmap
サブネット全体をスキャンしてデバイスを検索します。
nmap -sP 192.168.1.0/24
答え2
PCで試す
arp -a
これは基本的に、Mac と IP 間のマップを表示します。
これは、デバイスが何らかの形で IP を持っていることを意味し、私はそれが事実であると想定しました。
答え3
デバイスが過去 30 秒間 (または ARP タイムアウトが設定されている時間) に同じネットワーク上で通信していた場合、その IP と MAC の両方が に表示されますarp -a
。
これは Linux、Windows、BSD の両方で機能し、おそらくさらに多くの OS でも機能します。
例:
> toad:/home/user>arp -a
toad.stack.nl (131.155.140.135) at 00:26:b9:66:89:49 on vlan140 permanent [vlan]
websites.stack.nl (131.155.140.165) at 00:26:b9:66:89:49 on vlan140 permanent [vlan]
toad.nfs.ipv4.stack.nl (192.168.2.135) at 00:26:b9:66:89:49 on vlan2 permanent [vlan]
C:\Users\ユーザー名>arp -a インターフェース: 192.168.1.12 --- 0xb インターネットアドレス 物理アドレスタイプ 192.168.1.2 08-00-37-43-8d-78 ダイナミック 192.168.1.101 a0-b3-cc-2a-77-10 ダイナミック 192.168.1.252 00-1e-e5-7a-47-5b ダイナミック 192.168.1.255 ff-ff-ff-ff-ff-ff 静的 224.0.0.22 01-00-5e-00-00-16 静的 224.0.0.252 01-00-5e-00-00-fc 静的 255.255.255.255 ff-ff-ff-ff-ff-ff 静的 インターフェース: 192.168.81.1 --- 0x12 インターネットアドレス 物理アドレスタイプ 192.168.81.255 ff-ff-ff-ff-ff-ff 静的 224.0.0.22 01-00-5e-00-00-16 静的 224.0.0.252 01-00-5e-00-00-fc 静的 インターフェース: 192.168.184.1 --- 0x13 インターネットアドレス 物理アドレスタイプ 192.168.184.255 ff-ff-ff-ff-ff-ff 静的 224.0.0.22 01-00-5e-00-00-16 静的 224.0.0.252 01-00-5e-00-00-fc 静的
デバイスがしばらくネットワーク上でアクティブでない場合、ARP キャッシュ内の情報は削除されます。これにより、古い情報がテーブルに乱雑に残るのを防ぎ、テーブルに古い MAC:IP ペアが残っている間にデバイスが IP を変更した場合に問題が発生するのを防ぎます。
そのような場合には、ARPpingデバイスに、またはローカル ネットワーク上のすべてのデバイスに ping を実行します。
Nマップまたは zenmap (Nmap とグラフィカル インターフェイスを組み合わせたもの) は、このための便利なツールであり、Linux と Windows の両方で動作します。(私は主に Windows で zenmap を使用します)。
答え4
それは呼ばれていますアドレス解決プロトコルWikipediaですべてわかりますよ =)。ウィキページ、
アドレス解決プロトコル (ARP) は、ネットワーク層アドレスをリンク層アドレスに解決するために使用される通信プロトコルです...