Vous pouvez toujours essayer d'envoyer un ping à l'adresse de diffusion de votre sous-réseau. Cela dépend de la configuration de votre réseau local, mais vous pouvez le découvrir avec
$ ifconfig wlp4s0 | grep Bcast
inet addr:192.168.199.47 Bcast:192.168.199.255 Mask:255.255.255.0
Le ping depuis Linux nécessite le -b
commutateur de ligne de commande, qui est une sorte de précaution de la commande.
Cependant, cela ne garantit pas que vous collecterez toutes les adresses MAC de tous les appareils connectés à votre sous-réseau, car c'est à l'appareil même de répondre aux requêtes ICMP ECHO envoyées aux adresses de diffusion, même si cela était prévu autrement au début de les RFC TCP/IP (voir si /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
est mis à 1).
Pour être plus sûr de couvrir toutes les adresses, cinglez-les individuellement avec
$ for ip in 192.168.199.{1..254}; do ping -c1 ${ip} & done
Plus ou moins la même chose est obtenue si vous utilisez un type d'analyse spécial de nmap avec
$ sudo nmap -sn -PE -n 192.168.179.1-254
C'est également ma méthode de sondage recommandée, car vous pouvez affiner la façon dont vous demandez aux clients leurs adresses MAC.
Tout ce que vous faites est de cingler l'adresse de diffusion. La version GNU/Linux de ping nécessite que vous utilisiez le -b
commutateur
-b Autoriser le ping d'une adresse de diffusion
Il ne semble pas y avoir d'équivalent direct du Solaris -s
switch non plus (il ne fait que cingler toutes les secondes et collecter des statistiques) mais peut-être est-il enfoui dans les pages de manuel de Linux - cela vaut la peine d'être lu (tout comme ceux de Solais).
Je n'irais pas non plus envoyer de ping au 255.255.255.255 (cela peut prendre un certain temps), j'utiliserais l'adresse de diffusion du réseau auquel j'étais connecté.