Когда мне нужно найти IP-адреса устройств по их MAC-адресам в системе Windows, я обычно использую Advanced IP Scanner (с сайта radmin.com) для сканирования сети, затем я использую arp -a для вывода списка MAC-адресов.
Можно ли использовать nmap для выполнения той же функции в Linux и, возможно, в Windows? Может ли Nmap для сканирования выдавать как IP, так и MAC-адреса?
Я пробовал arp -a в Linux, но, похоже, он работает не так быстро, как в Windows, или, похоже, требует ввода некоторых данных.
/ vfclists
Используя nmap можно найти много информации ..
nmap -A -v -v 192.168.1.0/24
дает много информации, даже ТАК в некоторых случаях
nmap -sn 192.168.1.0/24
дает MAC- и IP-адреса. Тоже очень полезно
sudo nmap -PU 192.168.1.0/24
объясняет каждый IP-адрес
Следующая команда с Nmap с участием корень привилегии (или использование судо):
sudo nmap -sP 172.31.201.0/24 | awk '/Nmap scan report for/{printf $5;}/MAC Address:/{print " => "$3;}' | sort
приводит к:
172.31.201.80 => 00:50:56:AF:56:FB
172.31.201.97 => 00:26:73:78:51:42
server1.company.internal.local => 3C:D9:2B:70:BC:99
...
Эта команда сканирует все IP-адреса в диапазоне и показывает MAC-адрес каждого IP-адреса. Он делает это в формате greppable, другими словами; отображает IP и MAC-адрес в одной строке. Это удобно, если вы хотите экспортировать в Excel или запустить на нем команду grep.
nmap -n -sP 10.0.3.0/24 | awk '/Nmap scan report/{printf $5;printf " ";getline;getline;print $3;}'
Кажется, это также работает для IP / MAC, которых еще нет в таблице ARP хостов. Это хорошая вещь.
Результат выполнения команды:
10.0.3.100 B8:27:EB:8E:C5:51
10.0.3.101 00:26:B6:E1:4B:EB
10.0.3.112 00:01:29:02:55:25
etc..
Вы можете использовать сканирование Ping, которое начинается с P-флага. Однако я лично использую -sL для этой работы.
Дополнение к ответу Антонио-сако. Я хотел также указать производителя на выходе. Для этого вы хотите вывести третий индекс (MAC-адрес) в конец строки.
sudo nmap -sn 10.10.10.0/24 | awk '/Nmap scan report for/{printf $5;}/MAC Address:/{print " => "substr($0, index($0,$3)) }' | sort
Результаты в:
10.10.10.24 => B0:5A:DA:EB:2A:C4 (Hewlett Packard)