ネットワーク内のマシンのMACアドレスを見つけるにはどうすればよいですか?
BIOSのみがインストールされている(オペレーティングシステムがインストールされていない)場合にのみ使用可能なマシンを検出する必要があります。
そして、稼働中のマシンのMACアドレスを見つける必要があります。
ネットワーク内のマシンのMACアドレスを見つけるにはどうすればよいですか?
BIOSのみがインストールされている(オペレーティングシステムがインストールされていない)場合にのみ使用可能なマシンを検出する必要があります。
そして、稼働中のマシンのMACアドレスを見つける必要があります。
回答:
管理対象スイッチで利用可能な情報にアクセスする必要があります。管理されていないネットワークがある場合、それを行う方法がわかりません。
これは、ターゲットコンピューターがWake-on-LAN(WoL)に対応していることを前提としています。この場合、サーバーへのリンクが確立され(点滅リンクLEDを探します)、ネットワークカードはWoLブロードキャストをリッスンしています。私の知る限り、カードはこの状態では何にも答えません。WoLがない場合、カードはおそらくオフ(リンクLEDなし)であり、まったく機能しません。
マシンの電源が入っていない場合、これは不可能です。
それらに電源が入っている場合、OSがインストールされていないと動作しないARPクエリなどのようなものに少なくとも答えるために最小限のネットワークスタックが必要なので、これも不可能だと思います。
動作する可能性があるのは(現時点ではわかりませんが、テストできません)、NICとスイッチは、NICのプラグインまたは電源投入時に通信し、スイッチはこの方法でMACアドレスを学習します。この場合、管理可能なスイッチが必要であり、接続されたMACアドレスを照会します。
Nmapを使用して、次の構文を使用して非常に迅速なARPスキャンを実行できます。
nmap -sn -PR -oX nmap.xml 192.168.1.0/24
これは、ARP ping(ARP要求のみ、ICMP、UDPまたはTCPなし、ポートスキャンなし)を使用して、指定されたIPアドレス範囲をスキャンし、XMLファイル(nmap.xml)にIPアドレス/ MACアドレス/ホスト名応答を記録します。
XMLファイルを変更し、CSVファイルを出力するPowerShellスクリプトを作成しました。これにより、ダウンしたホストも除外されます。これは、XMLファイルよりもExcelで使用する方が簡単だと思います。誰かが興味を持っている場合のスクリプトは次のとおりです。
# Define nmap input file
$NmapXMLFile = ".\nmap.xml"
# Initialize object array
$HostItems = @()
# Initialize index
$x = 0
# Load XML
[xml]$NmapXML = Get-Content $NmapXMLFile
# Loop through XML
ForEach ($HostNode in $NmapXML.nmaprun.host) {
# Check host status
If ($HostNode.status.state -eq "up") {
# Create host object
$HostObj = "" | Select-Object ID, Hostname, 'IP Address', 'MAC Address', Vendor
# Store ID and increment index
$HostObj.ID = $x += 1
# Store hostname
$HostObj.Hostname = $HostNode.hostnames.hostname.name
# Loop through addresses
foreach ($HostAddress in $HostNode.address) {
# Check IP address
If ($HostAddress.addrtype -eq "ipv4") {
# Store IP address
$HostObj.'IP Address' = $HostAddress.addr
}
# Check MAC address
If ($HostAddress.addrtype -eq "mac") {
# Store MAC address
$HostObj.'MAC Address' = $HostAddress.addr
# Store vendor
$HostObj.Vendor = $HostAddress.vendor
}
}
# Append host object to array
$HostItems += $HostObj
}
}
# Print host items
$HostItems
# Export host items to CSV
$HostItems | Export-CSV -NoType .\nmap.csv
Scantype n not supported
。フラグ-sn
はNmap 4.xではサポートされていないようです。
ここでの基本的な問題は、これがレイヤ2情報であるため、スイッチだけがそれを見るということです。一部のスイッチは、この情報を覗くことができるインターフェースを提供しますが、それを取得する唯一の方法でない場合は、例えばスイッチ間にハブを設置することにより、物理層でインターセプトすることです。
マネージドスイッチを使用している場合、この情報はおそらくスイッチから入手できます。一部のエンドユーザー統合ルーター/スイッチ(ADSLモデムもよくパッケージする種類など)には、MACアドレスを含むDHCPクライアントリストが含まれることがあります。
管理されていないスイッチを使用していて、この情報を本当に知りたい場合は、ハブを購入し、スイッチを一時的に交換することをお勧めします。次に、wiresharkを実行しているコンピューターをハブに接続し、ARPパケットをキャプチャしてMACアドレスを記録できます。または、Echolotを使用してこれを行うこともできます-ARPパケットを選択的に追跡し、MACアドレスデータベースを構築します。
ここに私のために働いた解決策があります:
2秒以内にできる非常に簡単な小さなトリックは、どのオペレーティングシステムでも、相互作用するデバイスのMACとIPアドレスを使用してテーブルを書き込むという事実を扱うことです。これは、ARP TABLEと呼ばれます。質問は、すべてのデバイスとの対話を強制する方法ですか?ブロードキャストIPアドレスにpingするだけです。一部のデバイスまたはファイアウォールはICMP ping要求をブロックする可能性があるため、これは完全ではありませんが、多くのシナリオで機能します。
コマンドは次のとおりです(ipv4 192.168.0.255ブロードキャストアドレス内):
ping 192.168.0.255
Linuxでの使用:
ping -b 192.168.0.255
デバイスが応答するまで数秒待ってから、次を実行します。
arp -a
IPV6のpingについては、Giedrius Rekasiusのコメントを参照してください
完璧ではありませんが、ツールも研究も時間の無駄もなく、すべての主要なオペレーティングシステムで動作し、迅速です。
ping6 -c2 -n ff02::1%wlan0
。使用するネットワークインターフェイスの名前を更新するだけで済みます。そのために使用するIPアドレスはff02::1
、どのネットワークに接続されているかには関係ありません。
他の人が言ったように、管理されていないスイッチまたはBootP / PXEがある場合、OSのないマシンのMACを取得する簡単な方法はありません。
実行中のマシンがWindowsを実行している場合、スクリプトを作成するのは簡単です(通常はWMI経由)
多くの例がここにあります:http : //gallery.technet.microsoft.com/ScriptCenter/en-us/site/search?f[0].Type=SearchText&f[0].Value=MAC+address&x=0&y= 0
たとえば、継続的に実行されるarpalertでARP情報を収集できます。これにより、開始後にARPアドレスのセットが表示されます。
電源がオフのマシンは、ARP応答を送信しません。
プロセスを高速化するには、arpalertを実行しているサーバーからネットワークでnmap pingスキャン(nmap -sP)を使用して、すべての可能な(ライブおよび実行中の)ホストをトリガーしてarpクエリに応答します。後からnmap pingスキャンを定期的に実行することで、まもなく生きているホストを見つける可能性が高くなります。
arpalertのスニペット:
MACがリストにない場合、arpalertは、MACアドレスとIPアドレスをパラメーターとして使用して、事前定義されたユーザースクリプトを起動します。
nmapのスニペット:
Nmap( "Network Mapper")は、ネットワーク探索またはセキュリティ監査用の無料のオープンソース(ライセンス)ユーティリティです。
ここを見てください:
私は使用します:nmap -sP 192.168.1.1/24
(192.168.1.1/24をIP範囲に置き換えます)
起動しているマシンのみが表示され、次のようなものが表示されます。
[root@x ~]# nmap -sP 192.168.1.1/24
Starting Nmap 6.40 ( http://nmap.org ) at 2014-11-22 14:20 EST
Nmap scan report for 192.168.1.1
Host is up (0.0019s latency).
MAC Address: ZZ:ZZ:54:2E:E9:B4 (Unknown)
Nmap scan report for 192.168.1.33
Host is up (0.035s latency).
MAC Address: ZZ:ZZ:FA:2D:D7:D8 (Intel Corporate)
Nmap scan report for 192.168.1.254
Host is up (0.0020s latency).
MAC Address: ZZ:ZZ:31:02:98:19 (Asustek Computer)
Nmap scan report for 192.168.1.34
Host is up.
Nmap done: 256 IP addresses (4 hosts up) scanned in 1.88 seconds
OSがインストールされていない場合は、LinuxライブCDを使用できます。nmapはおそらくそれらのほとんどで利用可能です。