Existe-t-il un moyen de rechercher des adresses IP gratuites sur le réseau? J'utilise nmap -sP 192.168.1.0/24
mais cela montre en fait des hôtes qui sont en place.
Existe-t-il un moyen de rechercher des adresses IP gratuites sur le réseau? J'utilise nmap -sP 192.168.1.0/24
mais cela montre en fait des hôtes qui sont en place.
Réponses:
Utiliser Nmap comme celui-ci est une façon assez précise de faire ce que vous avez demandé, à condition que certaines conditions préalables soient remplies:
Afin d'obtenir les adresses «disponibles», vous devez obtenir la liste des adresses que Nmap signale comme «en panne». Vous pouvez le faire avec une simple commande awk:
sudo nmap -v -sn -n 192.168.1.0/24 -oG - | awk '/Status: Down/{print $2}'
Résumé des options Nmap utilisées:
-v
option, Nmap imprimera les adresses qu'il trouve comme "en baisse" en plus de celles qui sont "en hausse".-sP
, j'ai substitué l'orthographe la plus récente -sn
, qui accomplit toujours le même scan, mais signifie "ignorer le scan du port" au lieu du "scan ping" trompeur (car la phase de découverte de l'hôte ne signifie pas nécessairement un scan écho ICMP ou un ping ).-n
option ignore les recherches DNS inversées, ce qui vous fait gagner un peu de temps, car vous n'êtes pas intéressé par les noms mais simplement par les adresses IP.-oG
option indique à Nmap de sortir un format grepable , ce qui est plus facile à traiter pour awk. L'argument " -
" lui indique d'envoyer cette sortie à stdout.La commande awk recherche ensuite "Status: Down" et imprime le deuxième champ, contenant l'adresse IP.
Bien sûr, si vous avez accès aux configurations en cours d'exécution du commutateur ou aux baux du serveur DHCP, vous pouvez obtenir cette réponse avec beaucoup plus d'autorité sans effectuer une analyse qui pourrait déclencher des alarmes de sécurité.
Je ne suis pas sûr de n-map, mais on pourrait raisonnablement supposer que si vous écrivez un script ping qui envoie 1 ping à chaque adresse, tous les hôtes qui reviennent avec "destination inaccessible" sont inoccupés, et tout ce qui revient "délai d'expiration de la demande" est occupé mais ne répond pas au ping. La différence entre les deux réponses est que "destination inaccessible" n'a pas reçu de réponse à sa demande ARP. "Délai d'expiration de la demande" signifie que quelque chose a répondu à la demande ARP, mais pas au paquet ICMP.
En voici un autre inspiré par Anders Larsson
pour ip dans 172.18.5. {129..254}; faire {ping -c 1 -W 1 $ ip; } &> / dev / null || echo $ ip & terminé | Trier
Ce qui signifie: "Essayez d'envoyer une requête ping à tous les Ips de la plage. Si le" ping "échoue, imprimez cette IP"
Si tu fais
nmap -v -sn -n 192.168.1.0/24 -oG - | awk '/Status: Down/{print $2}'
Fonctionne rapidement, mais j'ai remarqué que certains hôtes signalés comme "Down" sont en fait "Up"