Перерахуйте всі MAC-адреси та пов’язані з ними IP-адреси в моїй локальній мережі (LAN)


82

Як я можу перерахувати всі MAC-адреси та пов’язані з ними IP-адреси машин, підключених до моєї локальної мережі (LAN)?


6
важливо розуміти, що як тільки ви перейдете через облаштування мережевого рівня 3 рівня, неможливо буде отримати MAC та ip за цим обладнанням
Kiwy

Чому ви ставите !після знака питання? Він не є необхідним і застосовується лише у випадках, коли питання кричить або має велике значення.
kiri

@ minerz029 дякую за пояснення, що
Maythux,

1
sudo tail -f /var/log/messages, відключіть і підключіть пристрій до пристрою, на якому ви намагаєтеся знайти MAC-адресу, або перегляньте / прочитайте повідомлення, щоб знайти пристрій.
IceArdor

Відповіді:


63

Ви можете використовувати для цього утиліту Nmap . Nmap - безкоштовна утиліта для сканування мережі.

Спробуйте просто:

sudo nmap -sn 192.168.1.0/24

Замініть свій ідентифікатор мережі та маску підмережі.

Як знайти мережевий ідентифікатор та маску підмережі

Використовувати команду 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

Тут у точці 2 у мене є wlan0пристрій. Він каже inet 192.168.3.66/24 brd 192.168.3.255 scope global wlan0, IP - адреса: 192.168.3.66, маска підмережі: 24. Ідентифікатор мережі є 192.168.3.0, просто замініть останнє число на 0.

Або, як nmapкаже людина :

sudo nmap -sn 192.168.1.0/24

Ось невеличка цитата зі сторінки man, nmap (1) :

-sn (No port scan)

Цей параметр повідомляє Nmap не робити сканування портів після виявлення хоста, а роздрукувати лише доступні хости, які відповіли на сканування. Це часто відоме як "сканування пінг", але ви також можете попросити запустити сценарії відстеження та хост-сценарії NSE.

Це за замовчуванням на один крок більш нав'язливий, ніж сканування списку, і його часто можна використовувати для тих же цілей. Це дозволяє легко розвідувати цільову мережу, не привертаючи особливої ​​уваги.

Знання того, скільки хостів зростає, є більш цінним для зловмисників, ніж список, який надається скануванням списку кожної окремої IP-адреси та імені хоста.

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

Виявлення хоста за замовчуванням, виконане з, -snскладається із запиту ехо-сигналу ICMP, TCP SYN до порту 443, TCP ACK до порту 80 та запиту часової мітки ICMP за замовчуванням.

Коли виконується непривілейованим користувачем, лише SYN-пакети надсилаються (використовуючи connectвиклик) до портів 80 та 443 в цільовому об'єкті.

Коли привілейований користувач намагається сканувати цілі в локальній мережі Ethernet, використовуються ARP-запити, якщо не --send-ipбуло вказано. Для більшої гнучкості -snпараметр може поєднуватися з будь-яким із типів зондування відкриття ( -P*параметри, виключаючи -Pn).

Якщо використовується будь-який з цих параметрів типу зонду та номера порту, зонди за замовчуванням переосмислюються. Коли між вихідним хостом, на якому працює Nmap, і цільовою мережею, встановлено жорсткі міжмережеві екрани, рекомендується використовувати ці передові методи. В іншому випадку хости можуть бути пропущені, коли брандмауер скидає зонди або їх відповіді.

У попередніх випусках Nmap -snбув відомий як -sP.


Це не працює
Maythux

4
Це потрібно буде відкоригувати, щоб 192.168.1.0/24змінити діапазон IP-адрес користувача.
kiri

@ minerz029 Звичайно, я змінив IP
Maythux,

Я не знаю, чи це причина, але в Linux я використовую nmap -sP 192.168.1.0/24для сканування ping.
тиктак

2
Чи знаєте ви, чому кореневі привілеї потрібні для читання MAC-адресатів з мережі?
Михайло Аквіліна

45

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

$ 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

В іншому випадку ваш маршрутизатор повинен мати можливість дати вам уявлення про активні пристрої (більшість).


Редагувати За коментарем davidcl, ця відповідь не така ідеальна, як я сподівався спочатку.

arpпокладається на попередній контакт чиясь робота. Однак, на мою думку, сучасні пристрої настільки балакучі (вам слід по-справжньому дивитися проводку - це освіта) на рівні мовлення, що навряд чи пристрій буде присутній у мережі, хоча б не відповідаючи на трансляцію. (Щоб бути впевненим, спочатку ви зможете пінгнути всі пристрої в мережі з 10.10.0.255, і тоді ви, ймовірно, отримаєте 90 +% пристроїв.)

Щоб дати вам якесь уявлення про те, що я маю на увазі, 10.10.0.16 вище - наш PVR. Немає прямої взаємодії між моїм ПК та PVR, і на PVR не працює жодна служба (також немає UPNP / DLNA).

Просто для швидкого перегляду аргументів ...

  • А як щодо хакерів у моїй мережі? 1
    Вони також можуть блокувати пінгви ICMP. Вони можуть блокувати всі відповіді на кожен тип сканування.
  • О, але, безумовно nmap, все-таки найкраще можливе рішення.
    Пробігаючи тут, у нього все ще не вистачає чотирьох пристроїв. Чотири пристрої, активні в мережі. Або вони не відповідають на pings, або nmap не чекає досить довго, щоб вони відповіли ... Я не знаю. nmapце чудовий інструмент (особливо для сканування портів, який ви можете зробити далі), але це все ще трохи незграбно (і трохи повільно) для цієї проблеми. І не називайте мене Ширлі.

1
Якщо я міняю свій MAC-ідентифікатор за допомогою mac changer, чи може він показувати оригінал?
rɑːdʒɑ

2
@BYEAskUbuntu, якщо ви використовуєте MAC-чейнджер, ваш MAC - це те, чим ви його встановили. Для всіх користувачів мережі його походження, як правило, невідоме, тому ні, воно не може.
Руслан

3
@ Руслан Це просто параноїк, який збиває їх з себе ... Я впевнений, що людині було б досить важко зробити з ними щось, але ти ніколи не знаєш, хто тебе переслідує.
Олі

9
Я здивований цією відповіддю. "arp" не відображає список активних MAC-адрес у локальній мережі. "arp" показує список MAC-адрес, відповідних машинам, які взаємоділи з машиною, на якій він працює. Якщо останнім часом не було зв’язку між локальною машиною та іншою машиною в мережі, ця машина не відображатиметься у списку "arp".
davidcl

5
Я щойно зробив швидкий тест у своїй мережі, і arp відображає лише близько 25% існуючих пристроїв. Якщо комп'ютер під керуванням arp не отримав пакет від іншого пристрою, він не буде в списку арп. Мені буде цікаво дізнатися більше про пристрої, які nmap не вдалося виявити у вашій мережі; Є способи приховати від nmap, але я знайшов сканування nmap за замовчуванням досить ефективним. Це означає, що не існує надійної відповіді, оскільки якщо пристрій не генерує трафік і не відповідає на запити, він невидимий-- але більшість пристроїв відповість на певний тип запиту.
davidcl

36

Я використовую arp-scanдля цього:

$ 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

1
Якщо ви хочете вказати мережевий інтерфейс, як-от бездротовий, скористайтеся цією командоюsudo arp-scan -l -I wlan0
HarlemSquirrel

Так, арп-сканування справді є «найкращим інструментом для роботи».
mivk

Це не працює для мене ... пристрій чомусь не відповідає.
Ендрю Вагнер

щоб перейти на арп-сканування до роботи, що мені довелося робити brew install arp-scanв OSX El Capitan.
jamescampbell

16

Можна використовувати arp-scan.

Встановити за допомогою цієї команди:

sudo apt-get install arp-scan

Щоб перелічити всі IP-адреси та пов’язані з ними MAC-адреси, використовуйте:

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

Вихід буде виглядати приблизно так:

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

1
Це не знайде пристрій, у якого ще немає ip ...
Andrew Wagner

9

GUI

Ви можете спробувати avahi-DiscoverВстановіть avahi-Discover .

  1. Встановіть його за допомогою цієї команди (або натиснувши вище посилання):

    sudo apt-get install avahi-discover
    
  2. Запустіть браузер Avahi Zeroconf або avahi-discoverз терміналу.
  3. Ви повинні побачити вікно зі списком пристроїв у вашій локальній мережі.
    MAC-адресою буде рядок у квадратних дужках.

Командний рядок

Ви можете використовувати цю команду в терміналі:

avahi-browse -a -t -d local

Він встановлений за замовчуванням.


1
Чи працює це, щоб відобразити MAC-адресу машини, яка не працює жодними послугами?
Елія Каган

3
У моєму випадку це працює не для кожного пристрою в мережі. Це досить проклято акуратно, але він не показуватиме тупих клієнтів без avahi / upnp послуг.
Олі

5
  1. Спочатку скануйте мережу, щоб побачити, які хости доступні / в режимі он-лайн за допомогою nmap -sn 1.2.3.4/24абоfping -g 1.2.3.4/24

  2. Потім запитуйте MAC-адресу, відповідну IP-адресі, використовуючи arping. Попередній псевдо-код:

    for i in $(cat list-of-reachable-hosts)
    do 
        arping $i
    done
    
  3. Шахрайство: проконсультуйтеся з ар-кешем вашого локального комутатора; це має дати вам хороший огляд ...



2

Мене заінтригувало це повідомлення. У мене була потреба в цьому.

Я написав скрипт оболонки, який розбирає arpвихід, використовуючи awkоператори та генерує вихід HTML. Якщо ви виконаєте скрипт і перенаправляєте вихід на HTML-файл, вам залишається HTML-файл, який показує IP, повну MAC-адресу та посилання на сторінку пошуку IEEE OUI. Це допомагає визначити клієнта шляхом виробника 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"

Це допомагає спочатку виконати nmapсканування у вашій локальній мережі, щоб у вас були записи в таблиці ARP. Сподіваємось, форматування переведено. Ви можете це зробити, щоб текст був у форматі таблиці.


2

Після деякої роботи та пошуку я виявив цю команду:

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.* Діапазон ІС. замінити своїм



0

ви можете використовувати arp.

Це покаже вам MAC та IP-адреси ..


Це працює лише для тих пристроїв, до яких було підключено (наприклад, за допомогою пінгу).
Пітер Мортенсен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.