как узнать mac адреса всех машин в сети


31

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


2
Для полноты картины: arp -n 0.0.0.0, где 0.0.0.0 - это ip-адрес устройства. Обратите внимание, что вы все равно будете искать по одному. Иногда вы хотите только один, и это, безусловно, быстрее, чем sshing для каждой коробки. Что делать, если это коробка с Windows или принтер?
d -_- b

2
sudo arp-scan --localnet
Серебряная луна,

Ответы:


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
Я обнаружил, что единственный способ показать MAC-адреса - это запустить nmap от имени пользователя root. Также кажется, что sedscript больше не работает. [Текст возле IP-адреса изменился.
монахи

Отчет сканирования Nmap для хоста 192.168.1.147 работает (задержка 0,00045 с). 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 в вики, если вы не знакомы с этой нотацией подсети.

Вы должны иметь возможность получить 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-адресов мне нужно быть root на моем Ubuntu box. Также простой метод для одного хоста - просто проверить его и посмотреть на таблицу 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-адресов. сделал arp-scan. Спасибо.
MikeP

5

В зависимости от топологии вашей локальной сети, ваш лучший способ может состоять в отображении таблицы MAC-адресов на ваших коммутаторах.

Так, например, если ваша инфраструктура коммутатора Cisco, вы можете попробовать

sh mac address-table

на каждом переключателе.

Если у вас много коммутаторов, вы можете автоматизировать эту задачу с помощью SNMP .

Другой вариант и (опять же) в зависимости от вашей топологии и типа сетевого оборудования, вы также можете попытаться получить MAC-адреса ваших устройств, отображающие таблицу arp на ваших маршрутизаторах.

С помощью любого из этих двух способов вы также получите список mac-адресов любых устройств, подключенных к вашей сетевой инфраструктуре: ПК, принтеры, точки доступа и т. Д. В первом случае, даже устройств без IP-адреса. Это может или не может хотеть, что вы хотите, но это может стоить попробовать.



1

Поскольку вы упомянули о ssh на компьютерах в вашей сети, вы также можете использовать этот короткий список:

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

0

Вы можете использовать программу под названием SIW, она бесплатна и сканирует сеть без каких-либо разрешений или аргументов.

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

Доступно в .exe, или полная установка.


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