Розв’язання MAC-адреси з IP-адреси в Linux


39

Мені потрібно написати скрипт bash, в якому я повинен створити файл, який містить дані про IP адреси хостів та їхнє відображення з відповідними адресами MAC.

Чи можливий спосіб я дізнатися MAC-адресу будь-якого (віддаленого) хоста, коли доступна IP-адреса хоста?

Відповіді:


36

Якщо ви просто хочете дізнатися MAC-адресу вказаної IP-адреси, ви можете скористатися командою, arpщоб переглянути її, як тільки ви 1 раз пінговували систему.

Приклад

$ 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

Тепер подивіться таблицю ARP:

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

фінг

Якщо ви хочете перевірити всю локальну мережу для MAC-адрес, для цього можна скористатися інструментом командного рядка fing. Зазвичай він не встановлений, тому вам доведеться завантажити його та встановити вручну.

$ sudo fing 10.9.8.0/24

    приклад

Використання ip

Якщо ви виявите, що у вас немає доступних команд arpабо fingкоманд, ви можете скористатися командою iproute2, ip neighщоб замість цього переглянути таблицю ARP вашої системи:

$ 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

Список літератури


Я знаю, що це стара відповідь, але чи маєте ви розуміння того, як реалізується Fing? Я намагаюся дізнатися про цей шар мереж та інструменти для його моніторингу.
akaphenom

1
@akaphenom Якщо у вас є нові запитання, будь ласка, їм прямо, коментарі для цього не призначені.
slm

але не arpзастаріло? Як я можу це зробити ip?
math2001

1
@ math2001 - це не було 5 років тому, я додав приклад, який показує, як користуватися ip.
slm

8

Ви можете використовувати arpкоманду:

arp -an

Але ви можете використовувати цю команду лише в локальній мережі, якщо ви хочете дізнатися MAC-адресу будь-якого віддаленого хоста, можливо, вам потрібно скористатися яким-небудь інструментом для захоплення пакету, як tcpdumpі аналізує результат.


2
tcpdump(8)покаже лише локальні MAC (тобто MAC останнього маршрутизатора ноги). Заголовки шарів MAC вхідних пакетів викреслюються маршрутизатором, а нові додаються до вихідного пакету.
фонбранд

5

Це з мого питання та відповіді в askubuntu .

Ви можете використовувати команду

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

nmap:Інструмент дослідження мережі та сканер безпеки / безпеки. З посібника:

-sP(Пропустити сканування портів). Цей параметр повідомляє Nmap не робити сканування портів після виявлення хоста, а роздруковувати лише доступні хости, які відповіли на сканування. Це часто відоме як "сканування пінг", але ви також можете попросити запустити сценарії відстеження та хост-сценарії NSE. Це за замовчуванням на один крок більш нав'язливий, ніж сканування списку, і його часто можна використовувати для тих же цілей. Це дозволяє легко розвідувати цільову мережу, не привертаючи особливої ​​уваги. Знання того, скільки хостів нараховується, є більш цінним для зловмисників, ніж список, який надається скануванням списку кожного окремого IP-адреси та імені хоста.

-PE; -PP; -PM (Типи пінг ICMP). Крім незвичайних типів відкриття TCP, UDP і SCTP, обговорених раніше, Nmap може надсилати стандартні пакети, надіслані всюдисущою програмою ping. Nmap надсилає пакет ICMP типу 8 (ехо-запит) на цільові IP-адреси, очікуючи типу 0 (відповідь ехо) у відповідь від доступних хостів. На жаль, для дослідників мережі, багато хостів і брандмауери зараз блокують ці пакети, а не відповідають вимагається RFC 1122 [2]. З цієї причини сканування лише ICMP рідко є достатньо надійними щодо невідомих цілей через Інтернет. Але для системних адміністраторів, які контролюють внутрішню мережу, вони можуть бути практичним та ефективним підходом. Використовуйте параметр -PE, щоб увімкнути цю поведінку ехо-запиту.

-A(Агресивні варіанти сканування). Цей параметр дозволяє додаткові вдосконалені та агресивні варіанти.

21,23,80,3389 Порти для пошуку

192.168.1.* Діапазон ІС. замінити своїм.


-sP призначений для "scanPing", він також -sn у ніколи не версіях nmap, здається.
meawoppl

4

згинання

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

Команда повинна повернути MAC-адресу у відповіді. Щось на зразок,

$ 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)

arpingнадається пакетом iputils-arpingна Debian.


arpingтакож потрібно сказати, який інтерфейс використовувати, з -Iопцією.
Стівен Кітт

Ви можете використовувати arping -f, щоб вийти після першої відповіді.
Ryan Griggs
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.