Bagaimana menemukan alamat MAC mesin di jaringan?

12

Bagaimana cara menemukan alamat MAC mesin di jaringan?

Saya perlu menemukan mesin yang tersedia hanya dengan BIOS terpasang (tidak ada sistem operasi).

Dan saya perlu mencari alamat MAC dari mesin yang naik.

Peter Mortensen
sumber
Lihat juga serverfault.com/questions/260333/...
Stefan Lasiewski
Duplikat lintas-situs (pada Stack Overflow): Bagaimana menemukan alamat MAC mesin di dalam dan melalui jaringan? .
Peter Mortensen

Jawaban:

8

Anda harus mengakses informasi yang tersedia di sakelar terkelola Anda. Jika Anda memiliki jaringan yang tidak dikelola, saya tidak melihat cara untuk melakukan itu.

Ini dengan asumsi komputer target mampu Wake-on-LAN (WoL). Dalam hal ini, tautan ke server dibuat (cari LED tautan mencolok), dan kartu jaringan mendengarkan siaran WoL. AFAIK, kartu tidak menjawab apa pun dalam kondisi ini. Jika tidak ada WoL, kartu kemungkinan besar mati (tidak ada tautan LED), dan tidak akan berfungsi sama sekali.

Posipiet
sumber
7

Jika mesin tidak dinyalakan, ini tidak mungkin.

Jika mereka diaktifkan, saya kira ini tidak mungkin juga, karena Anda memerlukan tumpukan jaringan minimal untuk setidaknya menjawab hal-hal seperti permintaan ARP dll, yang tidak berfungsi tanpa OS diinstal.

Apa yang mungkin berhasil (saya tidak tahu dan tidak bisa menguji sekarang) adalah bahwa NIC dan sakelar berkomunikasi ketika NIC dicolokkan atau dihidupkan dan sakelar mempelajari alamat MAC dengan cara ini. Jika demikian, Anda akan memerlukan sakelar yang dapat dikelola dan kueri untuk alamat mac yang terhubung.

Sven
sumber
2
Anda mungkin mendapatkannya tanpa tumpukan jaringan jika meminta bootp atau pxe boot. Tergantung pada mesin, apakah ini akan berhasil, saya pikir.
Bart Silverstrim
6

Anda dapat menggunakan Nmap untuk melakukan pemindaian ARP yang sangat cepat menggunakan sintaks berikut.

nmap -sn -PR -oX nmap.xml 192.168.1.0/24

Ini menggunakan ping ARP (hanya permintaan ARP, tidak ada ICMP, UDP atau TCP, tidak ada pemindaian port) untuk memindai rentang alamat IP yang ditentukan dan mencatat tanggapan alamat IP / alamat MAC / Hostname dalam file XML (nmap.xml).

Saya menulis skrip PowerShell yang munges file XML dan meludahkan file CSV . Ini juga menyaring host turun. Saya menemukan ini lebih mudah digunakan di Excel daripada file XML. Ini skripnya jika ada yang tertarik.

# 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
John Homer
sumber
Saya mencoba perintah di atas, dan mendapat kesalahan Scantype n not supported. Rupanya bendera -sntidak didukung di Nmap 4.x.
Stefan Lasiewski
Dari nmap 5.30BETA1 ChangeLog:
John Homer
2
Beralih ke -Pn dan -sn dan sebagai sintaks yang lebih disukai untuk melewatkan pemindaian ping dan melewatkan pemindaian port. Sebelumnya opsi -PN dan -sP direkomendasikan. Ini menetapkan sintaksis yang lebih teratur untuk beberapa opsi yang menonaktifkan fase pemindaian: -n no reverse DNS -Pn no penemuan host -sn no port scan Kami juga merasa bahwa opsi -sP ("ping scan") lama agak menyesatkan karena versi Nmap saat ini dapat melangkah lebih jauh (termasuk -sC dan --traceroute) bahkan dengan pemindaian port dinonaktifkan. Kami akan mempertahankan dukungan untuk nama opsi sebelumnya untuk masa mendatang.
John Homer
Jadi berdasarkan itu, Anda harus dapat menggunakan sintaks '-sP' sebagai ganti parameter '-sn' yang lebih baru. Sayangnya, saya tidak memiliki versi nmap4 untuk diuji.
John Homer
3
  1. Lihat info pada switch / router Anda, jika switch sudah cukup maju.
    (Dalam perintah Cisco switch adalah show mac-address-table).
  2. Jika mesin memiliki kartu BIOS / Jaringan diaktifkan PXE, baca info dari log DHCP, karena mereka akan mencoba untuk mendapatkan penyewaan DHCP. Jika Anda tidak memiliki DHCP, cukup buang semua lalu lintas siaran dengan Wireshark dan saring lalu lintas DHCP. Semua mesin baru bertenaga tanpa OS akan menunjukkan lalu lintas.
Kristaps
sumber
3

Dari mesin Unix, mendengarkan komputer tanpa-OS di LAN yang sama, dan jika memungkinkan melalui Hub (bukan Switch), Anda dapat mencoba

arp
cat /proc/net/arp

Anda juga mungkin ingin mencoba wireshark(dari mesin OS-ed). Sekali lagi, lebih baik menggunakan Hub untuk menangkap komunikasi dari mesin BIOS, termasuk siaran.

Dering Ø
sumber
1

Masalah mendasar di sini adalah bahwa ini adalah informasi Layer 2, jadi hanya switch yang melihatnya. Beberapa sakelar akan menyediakan antarmuka yang memungkinkan Anda mengintip informasi ini, tetapi jika sakelar itu bukan satu-satunya cara untuk mendapatkannya adalah dengan menyadap di lapisan fisik, misalnya dengan memasang hub di antara sakelar.

Jika Anda menggunakan sakelar yang dikelola, informasi ini kemungkinan tersedia dari sakelar. Beberapa router / switch terintegrasi pengguna akhir (seperti jenis yang sering mengemas modem ADSL juga) kadang-kadang akan memiliki daftar klien DHCP yang mencakup alamat MAC.

Jika Anda menggunakan sakelar yang tidak dikelola, dan Anda benar-benar ingin mengetahui info ini, saya sarankan Anda membeli hub , dan untuk sementara ganti sakelar dengannya. Anda kemudian dapat menghubungkan komputer yang menjalankan wireshark ke hub dan menangkap paket ARP untuk merekam alamat MAC. Bergantian Anda dapat menggunakan Echolot untuk melakukan ini untuk Anda - itu secara selektif melacak paket ARP dan membangun basis data alamat MAC.

imoatama
sumber
Sunting - baca kembali bagian tentang mereka yang hanya BIOS. Ini menyajikan tantangan lebih lanjut di luar masalah memotong data lapisan 2 - klien bahkan mungkin tidak mengirim data apa pun melalui jaringan. Jika klien memiliki bios yang melakukan DHCP, atau mengirim paket ARP, itu mungkin untuk melihatnya dari switch. Saya tidak yakin apa yang mendukung edisi BIOS ini, saya tahu beberapa melakukannya.
imoatama
1

Inilah solusi yang bekerja untuk saya:

  1. Aktifkan boot jaringan di BIOS. (Misalnya, atur adaptor jaringan Anda ke "Diaktifkan dengan PXE")
  2. Boot mesin.
  3. Mesin akan mencoba melakukan booting dari jaringan, menunjukkan kepada Anda alamat MAC dalam proses.
Igor Ostrovsky
sumber
1

Trik kecil yang sangat mudah Anda bisa lakukan dalam 2 detik adalah bekerja dengan fakta bahwa setiap sistem operasi menulis tabel dengan mac dan alamat IP perangkat apa pun yang berinteraksi dengannya. Ini dikenal sebagai ARP TABLE. Jadi pertanyaannya adalah bagaimana memaksa interaksi dengan semua perangkat? Anda bisa ping alamat IP broadcast. Ini tidak sempurna, karena beberapa perangkat atau firewall dapat memblokir permintaan ping ICMP, tetapi berfungsi dalam banyak skenario.

Perintahnya adalah (dalam alamat broadcast ipv4 192.168.0.255):

ping 192.168.0.255

Dalam penggunaan Linux:

ping -b 192.168.0.255

Tunggu beberapa detik hingga perangkat merespons, lalu lakukan:

arp -a

Untuk ping IPV6 lihat komentar Giedrius Rekasius

Tidak sempurna, tetapi tidak ada alat, tidak ada penelitian, tidak membuang waktu, bekerja di setiap sistem operasi utama dan cepat.

Giovanni Silva
sumber
Saya merasa lebih mudah dan lebih dapat diandalkan untuk melakukan ping seperti itu melalui IPv6 daripada over IPv4. Contoh perintah bisa terlihat seperti ini ping6 -c2 -n ff02::1%wlan0. Satu hanya perlu memperbarui nama antarmuka jaringan untuk digunakan, alamat IP yang digunakan untuk tujuan itu selalu ff02::1terlepas dari jaringan yang Anda gunakan.
kasperd
1

Pindai jaringan dengan Nmap dan kemudian periksa tabel ARP ( arp -adalam distribusi Linux).

MihaiM
sumber
0

Saya akan menyarankan beralih tabel alamat MAC, tetapi seseorang sudah membahas yang di atas.

Jika ada komputer yang menjalankan OS dan memiliki alamat IP, Anda dapat terhubung ke LAN yang sama, Anda dapat menggunakan NMAP (atau versi GUI seperti Zenmap) dari http://nmap.org/ ... jika Anda menjalankan ini di LAN yang sama, Anda harus mendapatkan info alamat MAC untuk mesin yang merespons.

Akan bermanfaat untuk memahami lebih banyak tentang mengapa Anda perlu mendapatkan alamat MAC, jika ada cara yang lebih baik untuk mencapai hasil yang sama.

Mitch Miller
sumber
0

Anda dapat mengumpulkan informasi ARP dengan misalnya arpalert yang terus berjalan. Dengan itu, Anda akan melihat set alamat ARP setelah mulai.

Mesin yang dimatikan tidak akan mengirimkan balasan ARP kepada Anda.

Untuk mempercepat proses, Anda dapat menggunakan pemindaian ping nmap (nmap -sP) di jaringan Anda dari server tempat Anda menjalankan arpalert, untuk memicu semua host yang mungkin (hidup dan berjalan) untuk menjawab permintaan arp Anda. Dengan menjalankan pemindaian ping nmap secara berkala nanti, Anda memiliki peluang yang lebih baik untuk menangkap host yang sebentar lagi hidup.

cuplikan dari arpalert:

Jika MAC tidak ada dalam daftar, arpalert meluncurkan skrip pengguna yang telah ditentukan sebelumnya dengan alamat MAC dan alamat IP sebagai parameter.

cuplikan dari nmap:

Nmap ("Network Mapper") adalah utilitas (lisensi) sumber gratis dan terbuka untuk eksplorasi jaringan atau audit keamanan

Lihat di sekitar sini:

asdmin
sumber
0

Saya menggunakan: nmap -sP 192.168.1.1/24

(ganti 192.168.1.1/24 dengan rentang IP Anda)

Ini akan menunjukkan kepada Anda hanya mesin yang menyala dan akan memberi Anda sesuatu seperti:

[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

Jika Anda tidak memiliki OS yang terpasang Anda dapat menggunakan linux live cd, nmap mungkin tersedia di sebagian besar dari mereka

neofutur
sumber