Comment puis-je connaître tous les appareils de mon réseau local en leur envoyant un signal d'alerte (ping) dans le terminal ? Quel serait le code ?
Réponses
Trop de publicités?La façon la plus simple de procéder est probablement d'utiliser un utilitaire en ligne de commande appelé nmap. Vous pouvez télécharger les binaires à partir du site site principal. Par ailleurs, si vous avez Homebrew installé, vous pouvez l'utiliser pour installer nmap à partir d'un terminal en tapant brew install nmap
Une fois que vous avez téléchargé et installé nmap, vous avez besoin d'une autre information sur votre réseau local : le bloc d'adresses IP utilisé par les machines qui s'y trouvent. Le moyen le plus simple de le savoir est d'exécuter la commande suivante ifconfig -a inet
à partir d'un terminal. Lorsque vous saisissez cette information, votre fr0 ou fr1 L'interface réseau doit avoir un inet (ne pas tenir compte de l'adresse inet pour lo0 ). C'est l'adresse IP voisine qui vous intéresse. Voici un exemple de sortie de ma machine :
$ ifconfig -a inet
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
options=3<RXCSUM,TXCSUM>
inet 127.0.0.1 netmask 0xff000000
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=27<RXCSUM,TXCSUM,VLAN_MTU,TSO4>
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.0.6 netmask 0xffffff00 broadcast 192.168.0.255
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
fw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 4078
Sur mon réseau, ma machine a l'adresse 192.168.0.6 sur l'interface fr1 .
NOTE En effet, selon le nombre de machines que vous avez sur votre réseau, le ping de chacune d'entre elles peut prendre beaucoup de temps. Dans les exemples suivants, je supposerai que vous avez moins de 256 appareils sur votre réseau et qu'ils se trouvent tous dans le même sous-réseau - ce qui est probablement le cas s'il s'agit d'un réseau domestique.
Si votre inet ressemble à 192.168. N.N (où chaque N est un nombre compris entre 0 et 255), la commande suivante essaiera d'envoyer un ping aux adresses 192.168. N .0 à 192.168. N .255 sur votre réseau, et signalez toutes les machines qui répondent (vous devez utiliser sudo pour que nmap puisse utiliser les pings ICMP). Remplissez le champ N avec le numéro correspondant dans votre inet adresse :
sudo nmap -sn -PE 192.168.N.0/24
Par exemple, si votre inet a été signalée comme étant 192.168.1.100, vous devez taper : sudo nmap -sn -PE 192.168.1.0/24
Si votre inet L'adresse ressemble à 10. N.N.N Utilisez-le, en remplissant à nouveau le champ N avec vos propres chiffres :
sudo nmap -sn -PE 10.N.N.0/24
Et enfin, s'il ressemble au 172. N.N.N utiliser ceci :
sudo nmap -sn -PE 172.N.N.0/24
Recherche de réseaux plus vastes
Si vous souhaitez étendre votre recherche à d'autres machines, vous devez ajuster le nombre après la barre oblique dans la section d'adresse de la commande. Dans les trois commandes ci-dessus, j'ai spécifié /24
. Cela signifie que nmap utilisera les 24 premiers bits de l'adresse IP que vous avez spécifiée et générera automatiquement les autres nombres (dans le premier exemple, nmap utilise 192.168. N comme la partie exacte, car chaque groupe est composé de 8 bits). Ainsi, pour rechercher plus d'adresses diminuer le nombre après la barre oblique. /24
recherchera l'adresse 256, /23
recherchera l'adresse 512, /22
cherchera 1024.
Chaque fois que vous diminuez le nombre de 1, deux fois plus d'adresses sont recherchées - c'est pourquoi une diminution trop importante peut faire durer la recherche très très longtemps. Par exemple, pour rechercher toutes les adresses 192.168. N.N vous devez spécifier 192.168.0.0/16
- mais il faudra faire un ping 65536 des machines. En supposant 0,25 pings par seconde, cela prendrait 4 heures...
Je ne sais pas combien de pings par seconde nmap peut envoyer, mais si vous essayez un scan complet, vous devrez peut-être le laisser toute la nuit, ou au moins prendre un long café.
Ces options nmap
Pour votre information, voici ce que signifient les autres options nmap que j'ai spécifiées :
-sn (No port scan)
-PE (ICMP ping echo)
Comme l'option "no port scan" peut le laisser entendre, vous pouvez faire toutes sortes de choses très bizarres avec nmap, comme vérifier quels ports sont ouverts sur une machine (pour savoir quels services sont probablement exécutés) et il peut même deviner quel système d'exploitation tourne la machine cible avec un degré de précision assez décent. Si vous avez besoin de fonctionnalités plus avancées, consultez la documentation de nmap. Je mettrais bien un lien vers ces documents, mais je ne suis pas assez renommé pour poster plus de deux liens pour l'instant.