Существует одна команда solaris для проверки связи со всеми хостами в подсети:
ping -s 255.255.255.255
Есть ли что-нибудь подобное в linux? Я намерен найти один MAC-адрес, как показано ниже, после проверки связи со всеми хостами:
arp -an | grep mac_address
Вы всегда можете попробовать выполнить эхо-запрос на широковещательный адрес вашей подсети. Это зависит от настроек вашей локальной сети, но вы можете узнать это с помощью
$ ifconfig wlp4s0 | grep Bcast
inet addr:192.168.199.47 Bcast:192.168.199.255 Mask:255.255.255.0
Для проверки связи из Linux требуется -b
переключатель командной строки, который является своего рода мерой предосторожности команды.
Однако это не гарантирует, что вы соберете все MAC-адреса со всех устройств, подключенных к вашей подсети, поскольку именно это устройство фактически отвечает на запросы ICMP ECHO, отправленные на широковещательные адреса, даже если это было задумано иначе в ранние годы RFC TCP / IP (посмотрите, /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
установлен на 1).
Чтобы быть уверенным, что все адреса покрыты, пингуйте их индивидуально с помощью
$ for ip in 192.168.199.{1..254}; do ping -c1 ${ip} & done
Более или менее то же самое достигается, если вы используете специальный тип сканирования nmap с
$ sudo nmap -sn -PE -n 192.168.179.1-254
Это также мой рекомендуемый способ зондирования, поскольку вы можете точно настроить способ запроса у клиентов их MAC-адресов.
Все, что вы делаете, это проверяете широковещательный адрес. Версия ping для GNU / Linux требует, чтобы вы использовали -b
переключатель
-b Разрешить пинговать широковещательный адрес
Похоже, что нет прямого эквивалента Solaris -s
переключитесь либо (он только пингует каждую секунду и собирает статистику), но, возможно, он похоронен в Справочные страницы Linux- стоит прочитать (как и Солнечные ).
Я бы тоже не стал пинговать 255.255.255.255 (это может занять некоторое время), я бы использовал широковещательный адрес сети, к которой я был подключен.
Пытаться
ping -b 10.0.0.255
где ifconfig показывает широковещательный адрес 10.0.0.255