як дізнатися mac-адреси всіх машин у мережі


31

Чи є якийсь простий спосіб дізнатися mac-адресу всіх машин у моїй мережі, а не робити SSH в кожній, і ifconfig | grep HWaddrякщо в мережі є 300 машин, мені дуже потрібне просте рішення.


2
Для повноти: arp -n 0.0.0.0 де 0.0.0.0 - ip-адреса пристрою. Зверніть увагу, що ви все одно будете шукати один за одним. Іноді ви хочете лише одного, і це, звичайно, швидше, ніж розсипання кожного коробки. Що робити, якщо це вікно Windows або принтер?
d -_- b

2
sudo arp-scan --localnet
Silver Moon

Відповіді:


34

Ви можете використовувати nmap для запуску сканування ping.

nmap -sP 192.168.254.*

Starting Nmap 5.00 ( http://nmap.org ) at 2011-03-09 11:32 GMT
Host xyzzy.lan (192.168.254.189) is up (0.00022s latency).
MAC Address: 00:0C:29:5B:A5:E0 (VMware)
Host plugh.lan (192.168.254.196) is up (0.00014s latency).
MAC Address: 00:0C:29:2E:78:F1 (VMware)
Host foo.lan (192.168.254.200) is up.
Host bar.lan (192.168.254.207) is up (0.00013s latency).
MAC Address: 00:0C:29:2D:94:A0 (VMware)
Nmap done: 256 IP addresses (4 hosts up) scanned in 3.41 seconds

Редагувати:

Сценарій sed для фільтрації виводу в IP -> MAC - помістіть це у файл.

/^Host.*latency.*/{
    $!N
    /MAC Address/{
        s/.*(\(.*\)) .*MAC Address: \(.*\) .*/\1 -> \2/
    }
}  
/[Nn]map/d
s/^Host .*is up/& but MAC Address cannot be found/

і використовувати його так

nmap -sP 192.168.254.0/20 | sed -f sedscript
192.168.254.189 -> 00:0C:29:5B:A5:E0
192.168.254.196 -> 00:0C:29:2E:78:F1
Host foo.lan (192.168.254.200) is up but MAC Address cannot be found.
192.168.254.207 -> 00:0C:29:2D:94:A0

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

1
Я виявив, що єдиний спосіб отримати мак-адреси для показу - запустити nmap як root. Також виявляється, що sedscript більше не працює. [Текст біля ip-адреси змінився.
ченці

Звіт про сканування Nmap для 192.168.1.147 Хост працює (затримка 0,00045s). MAC Адреса: XX: XX: XX: XX: XX: XX
ченці

16

Використовуйте nmap. Важливо запустити його як root, щоб ви отримали MAC адреси. Приклад:

sudo nmap -sP 192.168.1.0/24 

Буде сканувати 192.168.1.1 - 192.168.1.255. Знайдіть позначення CIDR на wiki, якщо ви не знайомі з цією нотацією підмережі.

Ви повинні мати можливість отримати nmap з репостів будь-якого недавнього дистрибутива Linux, наприклад

sudo apt-get install nmap

або

sudo yum install nmap

Приклад виводу з моєї мережі:

Host 192.168.1.1 is up (0.0069s latency).
MAC Address: 00:0D:54:9B:D8:F4 (3Com)
Host 192.168.1.78 is up (0.0068s latency).
MAC Address: 00:0C:29:BC:3D:1C (VMware)
Host 192.168.1.91 is up (0.0038s latency).
MAC Address: 00:0C:29:8A:F4:A3 (VMware)
Host 192.168.1.92 is up (0.0039s latency).
MAC Address: 00:0C:29:65:60:5F (VMware)
Host 192.168.1.158 is up (0.033s latency).
MAC Address: 00:0C:29:82:24:EA (VMware)
Host 192.168.1.186 is up (0.0024s latency).
MAC Address: 00:0C:29:3E:26:1F (VMware)
Host 192.168.1.190 is up (0.0066s latency).

так, ваш метод досить простий спосіб.
Зареєстрований користувач

7

Поки ви запускаєте цю команду з хоста в одному і тому ж сегменті мережі, nmapбуде повідомлятися про всі MAC-адреси для кожного хоста є виявленими.

Наприклад:

sudo nmap 192.168.1.0/24 -sP

Starting Nmap 4.76 ( http://nmap.org ) at 2011-03-09 06:29 EST

Host old.net (192.168.1.1) appears to be up.
MAC Address: 00:18:39:C5:A1:DC (Cisco-Linksys)

Для MAC-адрес я повинен мати корінь на своєму полі Ubuntu. Також простим методом для одного хоста є просто його ping та перегляд таблиці arp, arp -aякщо ви хочете використовувати лише команди, які зазвичай містяться в початковій установці дистрибутива:

arp -a | grep -v incomplete
foo.net (192.168.1.145) at 00:0d:4b:6a:2c:cb [ether] on eth0

7

Спробуйте цю команду:

arp-scan --interface=eth0 192.168.1.0/24

Я знаю, це справді старе питання. Однак nmap не дав мені MAC-адреси. арп-сканування зробили. Спасибі.
MikeP

5

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

Наприклад, якщо інфраструктурою комутатора є Cisco, ви можете спробувати

sh mac address-table

на кожному перемикачі.

Якщо у вас багато комутаторів, ви можете автоматизувати це завдання за допомогою SNMP .

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

За допомогою будь-якого з цих двох методів ви також отримаєте список мак-адрес будь-яких пристроїв, підключених до вашої мережевої інфраструктури: ПК, принтерів, точок доступу тощо. У першому випадку навіть пристроїв без IP-адреси. Ви можете, а може і не так, як хочете, але варто спробувати.



1

Оскільки ви згадали про ssh у машинах у своїй мережі, ви також можете скористатися цим штрихом:

nmap -p 22 10.100.10.0/24 >/dev/null ; arp -a

0

Ви можете використовувати програму під назвою SIW, вона безкоштовна і сканує мережу, не вимагаючи дозволів чи аргументів.

URL: http://www.gtopala.com/

Доступний у .exe або повній установці.


.exe? Тег говорить "Linux-Netowrking"
d -_- b
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.