Daftar semua alamat MAC dan alamat IP terkait di jaringan lokal saya (LAN)

84

Bagaimana saya bisa mendaftar semua alamat MAC dan alamat IP terkait dari mesin yang terhubung ke jaringan lokal saya (LAN)?

Maythux
sumber
6
penting untuk memahami bahwa segera setelah Anda menggunakan peralatan lapisan jaringan level 3 tidak akan mungkin untuk mendapatkan MAC dan ip di belakang
peralatan
Mengapa Anda menempatkan !setelah tanda tanya? Itu tidak perlu dan hanya digunakan dalam kasus-kasus di mana pertanyaan itu diteriakkan atau sangat penting.
kiri
@ minerz029 terima kasih telah menjelaskan bahwa
Maythux
1
sudo tail -f /var/log/messages, lalu cabut dan pasang kembali di perangkat yang Anda coba temukan alamat MAC, atau grep / baca pesan untuk menemukan perangkat.
IceArdor

Jawaban:

63

Anda dapat menggunakan utilitas Nmap untuk ini. Nmap adalah utilitas pemindai jaringan gratis.

Coba saja:

sudo nmap -sn 192.168.1.0/24

Harap ganti pengenal jaringan dan subnet mask Anda.

Cara menemukan ID jaringan dan subnet mask

Gunakan perintah ip a:

bash~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether c4:85:08:94:ee:9a brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.66/24 brd 192.168.3.255 scope global wlan0
    inet6 fe80::c685:8ff:fe94:ee9a/64 scope link valid_lft forever preferred_lft forever

Di sini, di titik 2, saya punya wlan0perangkat. Ia mengatakan inet 192.168.3.66/24 brd 192.168.3.255 scope global wlan0, IP address: 192.168.3.66, subnet mask: 24. Network ID adalah 192.168.3.0, ganti saja angka terakhir dengan 0.

Atau seperti yang nmapdikatakan manusia :

sudo nmap -sn 192.168.1.0/24

Berikut adalah kutipan kecil dari halaman manual, nmap (1) :

-sn (No port scan)

Opsi ini memberi tahu Nmap untuk tidak melakukan pemindaian port setelah penemuan host, dan hanya mencetak host yang tersedia yang merespons pemindaian. Ini sering dikenal sebagai "ping scan", tetapi Anda juga dapat meminta agar skrip host traceroute dan NSE dijalankan.

Ini secara default satu langkah lebih mengganggu daripada pemindaian daftar, dan sering dapat digunakan untuk tujuan yang sama. Ini memungkinkan pengintaian ringan dari jaringan target tanpa menarik banyak perhatian.

Mengetahui berapa banyak host yang naik lebih berharga bagi penyerang daripada daftar yang disediakan oleh pemindaian daftar dari setiap alamat IP dan nama host.

Administrator sistem sering menemukan opsi ini juga berharga. Dapat dengan mudah digunakan untuk menghitung mesin yang tersedia di jaringan atau memonitor ketersediaan server. Ini sering disebut ping sweep, dan lebih dapat diandalkan daripada mem-ping alamat broadcast karena banyak host tidak membalas pertanyaan broadcast.

Penemuan host default dilakukan dengan -snterdiri dari permintaan gema ICMP, TCP SYN ke port 443, TCP ACK ke port 80, dan permintaan cap waktu ICMP secara default.

Ketika dieksekusi oleh pengguna yang tidak memiliki hak istimewa, hanya paket SYN yang dikirim (menggunakan connectpanggilan) ke port 80 dan 443 pada target.

Ketika pengguna istimewa mencoba memindai target pada jaringan ethernet lokal, permintaan ARP digunakan kecuali --send-ipditentukan. The -snpilihan dapat dikombinasikan dengan salah satu tipe probe (yang -P*pilihan, tidak termasuk -Pn) untuk fleksibilitas yang lebih besar.

Jika salah satu dari opsi jenis dan nomor port penyelidikan tersebut digunakan, probe default akan diganti. Ketika firewall ketat ada di antara host sumber yang menjalankan Nmap dan jaringan target, disarankan menggunakan teknik-teknik canggih itu. Jika tidak, host dapat terlewatkan ketika firewall menjatuhkan probe atau responsnya.

Dalam rilis Nmap sebelumnya, -sndikenal sebagai -sP.

c0rp
sumber
Ini tidak berfungsi
Maythux
4
Ini perlu disesuaikan sehingga 192.168.1.0/24diubah ke rentang alamat IP pengguna.
kiri
@ minerz029 Tentu saya mengubah IP
Maythux
Saya tidak tahu apakah itu alasannya, tetapi di Linux saya gunakan nmap -sP 192.168.1.0/24untuk scan ping.
tiktak
2
Apakah Anda tahu mengapa root priveleges diperlukan untuk membaca alamat MAC dari jaringan?
Michael Aquilina
45

arpperlahan akan mengembalikan Anda daftar alamat MAC dan IP aktif atau nama host mereka jika ada. Jika Anda ingin lebih cepat, Anda dapat menggunakan arp -nyang harus melewati pencarian DNS. Jika Anda perlu menguraikannya menjadi sesuatu arp -anakan melewati kolom lebar tetap.

$ arp
Address                  HWtype  HWaddress           Flags Mask            Iface
10.10.0.11               ether   00:04:ff:ff:ff:d0   C                     eth0
10.10.0.16               ether   00:04:ff:ff:ff:a6   C                     eth0
raspbmc.local            ether   00:1f:ff:ff:ff:9c   C                     eth0
10.10.0.19               ether   00:04:ff:ff:ff:c9   C                     eth0
10.10.0.12               ether   bc:f5:ff:ff:ff:93   C                     eth0
10.10.0.17               ether   00:04:ff:ff:ff:57   C                     eth0
10.10.0.1                ether   20:4e:ff:ff:ff:30   C                     eth0
HPF2257E.local           ether   a0:b3:ff:ff:ff:7e   C                     eth0
10.10.0.15               ether   00:04:ff:ff:ff:b9   C                     eth0
tim                      ether   00:22:ff:ff:ff:af   C                     eth0
10.10.0.13               ether   60:be:ff:ff:ff:e0   C                     eth0

Jika tidak, router Anda harus dapat memberi Anda gambaran tentang perangkat yang aktif (kebanyakan dilakukan).


Edit komentar Per davidcl, jawaban ini tidak sesempurna yang saya harapkan.

arpmengandalkan kontak sebelumnya untuk bekerja. Namun, menurut saya, perangkat modern sangat banyak bicara (Anda harus benar-benar menonton wireshark - ini adalah pendidikan) di tingkat penyiaran sehingga kemungkinan perangkat tidak akan ada di jaringan tanpa setidaknya membalas siaran. (Untuk memastikan Anda dapat melakukan ping semua perangkat di jaringan dengan 10.10.0.255 terlebih dahulu dan Anda kemungkinan akan mendapatkan 90+% perangkat.)

Untuk memberi Anda semacam ide tentang apa yang saya maksud, 10.10.0.16 di atas adalah PVR kami. Tidak ada interaksi langsung antara PC saya dan PVR dan tidak ada layanan yang berjalan pada PVR (tidak ada UPNP / DLNA juga).

Hanya untuk bermain melalui argumen dengan cepat ...

  • Tetapi bagaimana dengan peretas di jaringan saya?! 1
    Mereka juga dapat memblokir ping ICMP. Mereka dapat memblokir semua respons untuk setiap jenis pemindaian.
  • Oh tapi pasti nmapmasih solusi terbaik
    Saat dijalankan di sini, masih kehilangan empat perangkat. Empat perangkat yang aktif di jaringan. Entah mereka tidak menanggapi ping atau nmap tidak menunggu cukup lama bagi mereka untuk merespons ... Saya tidak tahu. nmapadalah alat yang hebat (terutama untuk pemindaian port yang mungkin ingin Anda lakukan selanjutnya) tetapi masih sedikit canggung (dan agak lambat) untuk masalah ini. Dan jangan panggil aku Shirley.
Oli
sumber
1
JIKA saya mengganti MAC ID saya dengan mac changer, dapatkah ini menunjukkan aslinya?
rɑːdʒɑ
2
@BYEAskUbuntu jika Anda menggunakan MAC changer, MAC Anda sesuai dengan yang Anda tetapkan. Untuk semua pengguna jaringan asalnya umumnya tidak diketahui, jadi tidak, tidak bisa.
Ruslan
3
@Ruslan Itu hanya membuat saya paranoid mengosongkan mereka ... Saya yakin itu akan cukup sulit bagi seseorang untuk melakukan sesuatu dengan mereka tetapi Anda tidak pernah tahu siapa yang menguntit Anda.
Oli
9
Saya terkejut dengan jawaban ini. "arp" tidak menampilkan daftar alamat MAC aktif di jaringan lokal. "arp" menunjukkan daftar alamat MAC yang terkait dengan mesin yang telah berinteraksi dengan mesin yang sedang dijalankan. Jika belum ada komunikasi antara mesin lokal dan mesin lain di jaringan baru-baru ini, mesin itu tidak akan muncul dalam daftar "arp".
davidcl
5
Saya baru saja melakukan tes cepat di jaringan saya, dan arp hanya menampilkan sekitar 25% dari perangkat yang ada. Jika komputer yang menjalankan arp belum menerima paket dari perangkat lain, itu tidak akan ada dalam daftar arp. Saya tertarik mengetahui lebih banyak tentang perangkat yang gagal dideteksi nmap di jaringan Anda; ada cara untuk bersembunyi dari nmap tetapi saya telah menemukan pemindaian nmap default cukup efektif. Yang mengatakan, Tidak ada jawaban yang gagal karena karena perangkat tidak menghasilkan lalu lintas dan tidak menjawab permintaan, itu tidak terlihat - tetapi sebagian besar perangkat akan menjawab beberapa jenis permintaan.
davidcl
37

Saya gunakan arp-scanuntuk ini:

$ sudo arp-scan -l
Interface: eth0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.8.1 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
192.168.2.1     ec:1a:59:61:07:b2       (Unknown)
192.168.2.50    90:59:af:3d:6d:bc       (Unknown)
192.168.2.51    3c:97:0e:48:22:12       (Unknown)
192.168.2.52    00:18:31:87:8f:b0       Texas Instruments

4 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.8.1: 256 hosts scanned in 1.282 seconds (199.69 hosts/sec). 4 responded
jcrigby
sumber
1
Jika Anda ingin menentukan antarmuka jaringan, seperti nirkabel, maka gunakan perintah inisudo arp-scan -l -I wlan0
HarlemSquirrel
Ya, arp-scan memang merupakan "alat terbaik untuk pekerjaan itu".
mivk
Ini tidak berfungsi untuk saya ... perangkat tidak merespons karena alasan tertentu.
Andrew Wagner
untuk mendapatkan arp-scan berfungsi saya harus lakukan brew install arp-scandi OSX El Capitan.
jamescampbell
17

Anda bisa menggunakannya arp-scan.

Instal menggunakan perintah ini:

sudo apt-get install arp-scan

Untuk daftar semua alamat IP dan alamat MAC terkait, gunakan:

sudo arp-scan --interface=eth0 --localnet

Outputnya akan terlihat seperti ini:

Interface: eth0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.8.1 with 16777216 hosts (http://www.nta-monitor.com/tools/arp-scan/)
192.168.1.3 38:60:77:29:31:36   (Unknown)
192.168.1.8 4c:72:b9:7c:bb:7e   (Unknown)
192.168.1.110   00:15:17:5f:d2:80   Intel Corporate
192.168.1.111   00:ff:88:5f:fd:f0   (Unknown)
192.168.1.153   00:15:17:5f:d2:82   Intel Corporate
192.168.1.180   52:54:00:70:04:02   QEMU
192.168.1.199   52:54:00:fe:7f:78   QEMU
Peter Mortensen
sumber
1
Ini belum menemukan perangkat yang belum memiliki ip ...
Andrew Wagner
9

GUI

Anda dapat mencoba avahi-temukanInstal avahi-temukan .

  1. Instal dengan perintah ini (atau dengan mengklik tautan di atas):

    sudo apt-get install avahi-discover
    
  2. Jalankan Avahi Zeroconf Browser atau avahi-discoverdari terminal.
  3. Anda akan melihat jendela dengan daftar perangkat di jaringan lokal Anda.
    Alamat MAC akan menjadi string dalam kurung kotak.

Garis komando

Anda dapat menggunakan perintah ini di terminal:

avahi-browse -a -t -d local

Ini diinstal secara default.

kiri
sumber
1
Apakah ini berfungsi untuk menunjukkan alamat MAC dari mesin yang tidak menjalankan layanan apa pun?
Eliah Kagan
3
Dalam kasus saya ini tidak berfungsi untuk setiap perangkat di jaringan. Sangat rapi, tetapi tidak akan menampilkan klien bodoh tanpa layanan avahi / upnp.
Oli
5
  1. Pertama lakukan pemindaian jaringan untuk melihat host mana yang dapat dijangkau / online menggunakan nmap -sn 1.2.3.4/24ataufping -g 1.2.3.4/24

  2. Kemudian permintaan alamat MAC yang sesuai dengan alamat IP menggunakan arping. Kode semu di depan:

    for i in $(cat list-of-reachable-hosts)
    do 
        arping $i
    done
    
  3. Cheatery: lihat arp-cache switch lokal Anda; yang seharusnya memberi Anda gambaran yang bagus ...

far4d
sumber
3

Dalam hal protokol NetBIOS didukung, saya lebih suka menggunakan

nbtscan 192.168.1.1-192.168.1.255.

Silveri
sumber
5
Ini hanya mendeteksi klien yang mendukung protokol NetBIOS (Windows dan Linux + Samba).
Eric Carvalho
2

Saya tertarik dengan posting ini. Saya sudah membutuhkan ini.

Saya menulis skrip shell yang mem-parsing arpoutput menggunakan awkpernyataan dan menghasilkan output HTML. Jika Anda menjalankan skrip dan mengarahkan output ke file HTML, Anda dibiarkan dengan file HTML yang menunjukkan IP, alamat MAC lengkap, dan tautan ke halaman pencarian IEEE OUI. Ini membantu dalam menentukan klien melalui produsen NIC.

printf "<html>\n<title>LAN IPs and their MACs</title>\n<body>\n"
arp -a | awk '{print $2,$4}' | awk -F'[().: ]' '{print $2"."$3"."$4"."$5,$6,$7":"$8":"$9":"$10":"$11":"$12,"<a href=\"http://standards.ieee.org/cgi-bin/ouisearch?"$7$8$9"\">IEEE OUI Lookup "$7"-"$8"-"$9"</a><br>"}'
printf "\n</body>\n</html>\n"

Ini membantu untuk melakukan nmappemindaian pada LAN Anda terlebih dahulu sehingga Anda memiliki entri dalam tabel ARP. Semoga format diterjemahkan. Anda dapat merapikan ini hingga memiliki teks dalam format tabel.

pengguna38537
sumber
2

Setelah Beberapa bekerja dan cari, saya menemukan perintah ini:

nmap -sP -PE -PA21,23,80,3389 192.168.1.*

nmap: Alat eksplorasi jaringan dan pemindai keamanan / port

-sP(Lewati pemindaian port). Opsi ini memberi tahu Nmap untuk tidak melakukan pemindaian port setelah penemuan host, dan hanya mencetak host yang tersedia yang merespons pemindaian. Ini sering dikenal sebagai "ping scan", tetapi Anda juga dapat meminta agar skrip host traceroute dan NSE dijalankan. Ini secara default satu langkah lebih mengganggu daripada pemindaian daftar, dan sering dapat digunakan untuk tujuan yang sama. Ini memungkinkan pengintaian ringan dari jaringan target tanpa menarik banyak perhatian. Mengetahui berapa banyak host yang naik lebih berharga bagi penyerang daripada daftar yang disediakan oleh pemindaian daftar setiap IP dan nama host.

-PE; -PP; -PM (Jenis Ping ICMP). Selain tipe penemuan host TCP, UDP dan SCTP yang tidak biasa yang dibahas sebelumnya, Nmap dapat mengirim paket standar yang dikirim oleh program ping yang ada di mana-mana. Nmap mengirimkan paket ICMP tipe 8 (permintaan gema) ke alamat IP target, mengharapkan tipe 0 (balasan gema) sebagai balasan dari host yang tersedia .. Sayangnya untuk penjelajah jaringan, banyak host dan firewall sekarang memblokir paket-paket ini, daripada merespons sebagai dibutuhkan oleh RFC 1122 [2]. Untuk alasan ini, pemindaian khusus ICMP jarang cukup andal terhadap target yang tidak diketahui melalui Internet. Tetapi untuk administrator sistem yang memonitor jaringan internal, mereka dapat menjadi pendekatan yang praktis dan efisien. Gunakan opsi -PE untuk mengaktifkan perilaku permintaan gema ini.

-A(Opsi pemindaian agresif). Opsi ini memungkinkan opsi lanjutan dan agresif tambahan.

21,23,80,3389 Port untuk mencari

192.168.1.* Rentang IP. ganti dengan milikmu

Maythux
sumber
1

Setelah bosan menggunakan nmap dan ARP combo, saya membuat program kecil ini yang menanyakan semua alamat MAC untuk rentang IP yang diberikan: https://github.com/drkblog/findmacs

drk.com.ar
sumber
Apakah itu kueri secara berurutan atau paralel?
Peter Mortensen
0

Anda dapat menggunakan arp.

Ini akan menunjukkan kepada Anda MAC dan IP ..


sumber
Ini hanya berfungsi untuk perangkat yang telah terhubung (misalnya melalui ping).
Peter Mortensen