web-dev-qa-db-ja.com

ルーターの背後からIPのMACアドレスを取得する

可能であれば、ルーターの背後にいる場合にIPアドレスのMACアドレスを取得する方法を知りたいです。

IPにpingを送信してarpテーブルを確認しようとしましたが、唯一のエントリはルーターのMACです。

何か案は?

読んでくれてありがとう。

8
Macarse

MACアドレスはルーターによって渡されません。ルーターのARPテーブルを確認する必要があります。

編集:

マシンへのアクセス方法が他にない限り、はい、それは不可能です。ネットワーク(VNC、RDP、SSH)にアクセスできる場合は実行できますが、それ以外の場合は実行できません。

ルーターがWebインターフェースにARPテーブルを提供していない場合は、Telnetを使用できるかどうかを確認できます。多くのホームルーターには、Webインターフェースから隠されているより高度な機能があります。

20
Dentrasi

ルーターの背後にあるマシンのMACアドレスを確認できることは保証できません。しかし、ネットワークのどこからでもMACアドレスを見つけるのに役立つプロトコルがいくつかあります。たとえば、IPアドレスがわかっているときに他のネットワーク上のWindows PCのMACアドレスを見つけるには、次のコマンドを使用できます。

nbtstat -A <IP Address>

Linuxマシン(sambaがインストールされている)から同じことを行うには、次のコマンドを使用します。

nmblookup -R -S -A <IP Address>

問題のマシンがWindowsマシンではなく、他のサブネットの一部になる方法がない場合。次に、唯一のオプションはルーターのMACアドレステーブルを表示するか、一般的なネットワーク全体のDHCPサーバーがある場合はDHCPログでMACアドレスを表示できます。ただし、ルーターまたはDHCPサーバーにアクセスするには、管理者である必要があります。

したがって、ネットワーク上に多数のWindowsマシンが存在する場合、サブネットにない場合でも、それらのMACアドレスを見つけることができます。しかし、ネットワークに多くのLinuxマシンがある場合、他のネットワークからMACを見つける非常に一般的な方法はありません。

上記の手法は、Linux sambaサーバーでは機能しません。それらは常にMACアドレスを00-00-00-00-00-00として返します。

5

問題のIPがルーターの直接接続されたサブネット上にない場合、MACはルーターのARPテーブルに含まれません。

ARPは、IP接続の最後のホップ(レイヤー2)にのみ表示されます/関連しています。最初のルーティングエンティティと最後のルーティングエンティティの間のすべてがレイヤー3で、送信元または宛先エンティティのARPではなく、直接接続されている次のルーティングエンティティのARPを使用します。

3
James F

あなたが知りたいのは-

サブネットの一部ではない特定のIP(マシン)のMACをどのように見つけることができますか?

サブネット上のすべてのマシン/ IPについて、IP-MACテーブルはローカルのマシン上のARPキャッシュに保存されます。これは、「IP解決の競合」を引き起こすのと同じキャッシュです。簡単に

$ arp -a | grep特定のIP

今、あなたのサブネットの外側のマシンのために-それを行うシェルフアプリケーションの標準はありません、私はICMPメッセージがそれを行うことができるかどうか考えようとしました、しかし今のところ私はないと思います。ネットワーキングではなく、階層化が設計されている方法では、これは意図的に望ましくない動作です。現在より下のレイヤーに関連する情報をエスケープまたは削除するには、ネットワーク全体でIPが使用されるため、MACは使用されません。

他のマシンで協力しているかどうかを確認してください。Macヘッダーをカプセル化して送信する小さなアプリを作成できます...もちろん、他のマシンから協力を得ている場合は、なぜこれだけの労力で単純なifconfig -aそのマシンのすべてのインターフェースに対して、その仕事をします。

2
Vivek Sharma

同じサブネット上にあるホストのMACアドレスのみを「見る」ことができます。次に、arpコマンドを使用してすべてのMACアドレスを一覧表示できます。

arp -a

または単一のIPアドレスの場合:

arp -a 192.168.0.1
1
splattne

他の回答で人々が言っ​​たように、ARPはレイヤー2プロトコルであり、ルーティングできないため、従来の方法でスキャンしてもMACアドレスが返されません。例

nmap -sn target

同じネットワークセグメント上にあるデバイスのMACアドレスのみを提供します。 nbtstatやsnmpなどのヘルパーを使用する2つのnmapスクリプトがあります。

[〜#〜] nbtstat [〜#〜]これには、nmapコマンドが実行されるターゲットでUDPポート137が開いている必要があります

nmap -sU --script nbtstat.nse -p 137 target

[〜#〜] snmp [〜#〜]このプロトコルは機能している必要があり、ポートが開いているため、目標。またUDPポート161

nmap -sU -p 161 --script=snmp-interfaces target

IPV6アドレスこれは、IPv6または類似の(Teredo、6to 4など)アドレスからMACを取得するときに機能します。 Macの一部が含まれているIPv6アドレスでのみ試しました

nmap -sV -sC target

(これはnmapのコマンド https://nmap.org/nsedoc/scripts/address-info.html )ですが、(内部のfe80ホストで)テストする場合は-6が必要なので、

nmap -sV -sC -6 target 
0
nassim

デバイスのメーカーを知っていますか?その場合、MACのpartを取得できる可能性があります。

http://aruljohn.com/mac.pl

他に考えられる唯一のことはvxlanですが、MACを直接持つルーターにアクセスするだけの場合よりも、設定が難しいと思います。

https://tools.ietf.org/html/rfc7348

0
dmourati

リモートPC、またはリモートネットワーク上の任意のPCにアクセスできる場合は、WMIを使用するか、さまざまなアプリを実行してMACアドレスを取得できます。 MACアドレスを取得する他の方法は考えられません。

JR

0
John Rennie