Назад | Перейти на главную страницу

Транслировать ARP-запрос на все узлы?

Я пытаюсь передать запрос ARP. Я хочу, чтобы с помощью этого запроса обновлялись IP- и MAC-адреса каждого узла в моей системе. Чтобы я мог набрать $ arp и увидеть все узлы в моей сети и их соответствующие физические адреса.

я пытался $ arping безрезультатно.

rafael@rcepeda:/var/www/html$ arping -s 192.168.1.9 -I wlan0 192.168.1.255
ARPING 192.168.1.255 from 192.168.1.9 wlan0
^CSent 37 probes (37 broadcast(s))
Received 0 response(s)

ifconfig для моего интерфейса

inet addr:192.168.1.9 Bcast:192.168.1.255 Mask:255.255.255.0

Обычный широковещательный пинг

rafael@rcepeda:/var/www/html$ ping -b 192.168.1.255
WARNING: pinging broadcast address
PING 192.168.1.255 (192.168.1.255) 56(84) bytes of data.
^C
--- 192.168.1.255 ping statistics ---
6 packets transmitted, 0 received, 100% packet loss, time 5040ms

100% потеря пакетов

Мой маршрутизатор не позволяет мне это сделать?

Большинство дистрибутивов Linux по умолчанию игнорируют эхо-рассылки ICMP (параметр ядра net.ipv4.icmp_echo_ignore_broadcasts).

Насколько я помню, Windows тоже не отвечает на эхо-рассылки ICMP. Может быть, это могло быть перезаписано модификацией реестра, но я не знаю наверняка.

Это обсуждается в Документ стандартов RFC 1122.

Я бы предложил использовать bash сценарий вроде этого:

for i in 192.168.1.{1..254} 
do
  ping -c1 $i > /dev/null || true
  arp -an $i
done