Vždy se můžete pokusit ping na adresu vysílání vaší podsítě. Záleží na nastavení vaší místní sítě, ale můžete to zjistit pomocí
$ ifconfig wlp4s0 | grep Bcast
inet addr:192.168.199.47 Bcast:192.168.199.255 Mask:255.255.255.0
Ping z Linuxu vyžaduje -b
přepínač příkazového řádku, což je jakési opatření příkazu.
To však nezaručuje, že shromáždíte všechny MAC adresy ze všech zařízení připojených k vaší podsíti, protože je na samotném zařízení, aby skutečně odpovídalo na požadavky ICMP ECHO zaslané na broadcast adresy, i když to bylo v raném věku zamýšleno jinak. TCP/IP RFC (viz, zda /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
je nastaveno na 1).
Chcete-li mít větší jistotu, že pokryjete všechny adresy, pingněte na ně jednotlivě pomocí
$ for ip in 192.168.199.{1..254}; do ping -c1 ${ip} & done
Víceméně stejného dosáhnete, pokud použijete speciální typ skenování nmap s
$ sudo nmap -sn -PE -n 192.168.179.1-254
To je také můj doporučený způsob testování, protože můžete doladit způsob, jakým se ptáte klientů na jejich MAC adresy.
Jediné, co děláte, je ping na adresu vysílání. Verze pingu pro GNU/Linux vyžaduje použití -b
přepínač
-b Povolit ping na adresu vysílání
Zdá se, že neexistuje přímý ekvivalent Solaris -s
přepínač buď (pouze pinguje každou sekundu a shromažďuje statistiky), ale možná je pohřben v manuálových stránkách Linuxu – stojí za přečtení (stejně jako ty ze Solais).
Nešel bych pingnout ani na 255.255.255.255 (může to chvíli trvat, než se dokončí). Použil bych broadcast adresu sítě, ke které jsem byl připojen.