Mengatasi Alamat MAC dari Alamat IP di Linux

39

Saya perlu menulis skrip bash di mana saya harus membuat file yang berisi rincian Alamat IP dari host dan pemetaan mereka dengan Alamat MAC yang sesuai.

Apakah ada cara yang memungkinkan saya dapat mengetahui alamat MAC dari host (jarak jauh) ketika alamat IP host tersedia?

Mandar Shinde
sumber

Jawaban:

36

Jika Anda hanya ingin mengetahui alamat MAC dari alamat IP yang diberikan, Anda dapat menggunakan perintah arpuntuk mencarinya, setelah Anda melakukan ping sistem 1 kali.

Contoh

$ ping skinner -c 1
PING skinner.bubba.net (192.168.1.3) 56(84) bytes of data.
64 bytes from skinner.bubba.net (192.168.1.3): icmp_seq=1 ttl=64 time=3.09 ms

--- skinner.bubba.net ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 3.097/3.097/3.097/0.000 ms

Sekarang lihat di tabel ARP:

$ arp -a
skinner.bubba.net (192.168.1.3) at 00:19:d1:e8:4c:95 [ether] on wlp3s0

jari

Jika Anda ingin menyapu seluruh LAN untuk alamat MAC, Anda dapat menggunakan alat baris perintah finguntuk melakukannya. Ini biasanya tidak diinstal sehingga Anda harus mengunduhnya dan menginstalnya secara manual.

$ sudo fing 10.9.8.0/24

    contoh jari

Menggunakan ip

Jika Anda tidak memiliki arpatau fingperintah yang tersedia, Anda bisa menggunakan perintah iproute2 ip neighuntuk melihat tabel ARP sistem Anda:

$ ip neigh
192.168.1.61 dev eth0 lladdr b8:27:eb:87:74:11 REACHABLE
192.168.1.70 dev eth0 lladdr 30:b5:c2:3d:6c:37 STALE
192.168.1.95 dev eth0 lladdr f0:18:98:1d:26:e2 REACHABLE
192.168.1.2 dev eth0 lladdr 14:cc:20:d4:56:2a STALE
192.168.1.10 dev eth0 lladdr 00:22:15:91:c1:2d REACHABLE

Referensi

slm
sumber
Saya tahu ini adalah jawaban lama, tetapi apakah Anda memiliki wawasan tentang bagaimana Fing diimplementasikan? Saya mencoba mempelajari tentang lapisan jaringan ini dan alat untuk memantaunya.
akaphenom
1
@akaphenom Jika Anda memiliki pertanyaan baru, silakan langsung, komentar tidak dimaksudkan untuk itu.
slm
tetapi tidak arpusang? Bagaimana saya bisa melakukan ini ip?
math2001
1
@ math2001 - bukan 5 tahun yang lalu, saya menambahkan contoh yang menunjukkan bagaimana menggunakan ip.
slm
8

Anda dapat menggunakan arpperintah:

arp -an

Tetapi Anda hanya dapat menggunakan perintah ini di LAN, jika Anda ingin mengetahui alamat MAC dari host jarak jauh apa pun, mungkin Anda harus menggunakan beberapa alat untuk menangkap paket seperti tcpdumpdan menguraikan hasilnya.

cuonglm
sumber
2
tcpdump(8)hanya akan menunjukkan kepada Anda MAC lokal (yaitu, MAC dari router leg terakhir). Header layer MAC dari paket input dilucuti oleh router, dan yang baru ditambahkan ke paket keluar.
vonbrand
5

Ini dari pertanyaan dan jawaban saya di askubuntu .

Anda bisa menggunakan perintah

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

nmap:Alat eksplorasi jaringan dan pemindai keamanan / port. Dari manual:

-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
-sP adalah untuk "scanPing", ini juga -sn dalam versi nmap yang tidak pernah terlihat.
meawoppl
4

arping

arping -I <interface> -c 1 <host>

Perintah harus mengembalikan alamat MAC dalam respons. Sesuatu seperti,

$ arping -I eth0 -c1 192.168.1.2
ARPING 192.168.1.2 from 192.168.1.5 eth0
Unicast reply from 192.168.1.2 [08:01:27:38:EF:32]  0.746ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)

arpingdisediakan oleh paket iputils-arpingdi Debian.

tukang kait
sumber
arpingjuga perlu diberitahu antarmuka mana yang digunakan, dengan -Iopsi.
Stephen Kitt
Anda dapat menggunakan arping -f untuk berhenti setelah balasan pertama.
Ryan Griggs