可能であれば、ルーターの背後にいる場合にIPアドレスのMACアドレスを取得する方法を知りたいです。
IPにpingを送信してarpテーブルを確認しようとしましたが、唯一のエントリはルーターのMACです。
何か案は?
読んでくれてありがとう。
MACアドレスはルーターによって渡されません。ルーターのARPテーブルを確認する必要があります。
編集:
マシンへのアクセス方法が他にない限り、はい、それは不可能です。ネットワーク(VNC、RDP、SSH)にアクセスできる場合は実行できますが、それ以外の場合は実行できません。
ルーターがWebインターフェースにARPテーブルを提供していない場合は、Telnetを使用できるかどうかを確認できます。多くのホームルーターには、Webインターフェースから隠されているより高度な機能があります。
ルーターの背後にあるマシンの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として返します。
問題のIPがルーターの直接接続されたサブネット上にない場合、MACはルーターのARPテーブルに含まれません。
ARPは、IP接続の最後のホップ(レイヤー2)にのみ表示されます/関連しています。最初のルーティングエンティティと最後のルーティングエンティティの間のすべてがレイヤー3で、送信元または宛先エンティティのARPではなく、直接接続されている次のルーティングエンティティのARPを使用します。
あなたが知りたいのは-
サブネットの一部ではない特定のIP(マシン)のMACをどのように見つけることができますか?
サブネット上のすべてのマシン/ IPについて、IP-MACテーブルはローカルのマシン上のARPキャッシュに保存されます。これは、「IP解決の競合」を引き起こすのと同じキャッシュです。簡単に
$ arp -a | grep特定のIP
今、あなたのサブネットの外側のマシンのために-それを行うシェルフアプリケーションの標準はありません、私はICMPメッセージがそれを行うことができるかどうか考えようとしました、しかし今のところ私はないと思います。ネットワーキングではなく、階層化が設計されている方法では、これは意図的に望ましくない動作です。現在より下のレイヤーに関連する情報をエスケープまたは削除するには、ネットワーク全体でIPが使用されるため、MACは使用されません。
他のマシンで協力しているかどうかを確認してください。Macヘッダーをカプセル化して送信する小さなアプリを作成できます...もちろん、他のマシンから協力を得ている場合は、なぜこれだけの労力で単純なifconfig -aそのマシンのすべてのインターフェースに対して、その仕事をします。
同じサブネット上にあるホストのMACアドレスのみを「見る」ことができます。次に、arpコマンドを使用してすべてのMACアドレスを一覧表示できます。
arp -a
または単一のIPアドレスの場合:
arp -a 192.168.0.1
他の回答で人々が言ったように、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
デバイスのメーカーを知っていますか?その場合、MACのpartを取得できる可能性があります。
他に考えられる唯一のことはvxlanですが、MACを直接持つルーターにアクセスするだけの場合よりも、設定が難しいと思います。
リモートPC、またはリモートネットワーク上の任意のPCにアクセスできる場合は、WMIを使用するか、さまざまなアプリを実行してMACアドレスを取得できます。 MACアドレスを取得する他の方法は考えられません。
JR