Nmap: trouvez des IP gratuites dans la gamme


14

Existe-t-il un moyen de rechercher des adresses IP gratuites sur le réseau? J'utilise nmap -sP 192.168.1.0/24mais cela montre en fait des hôtes qui sont en place.


10
ne répond pas au ping ne signifie pas nécessairement inutilisé.
Accordez le

1
Vous voulez un scanner IPAM, pas nmap.
TheCleaner

2
L'analyse de découverte d'hôte de @Grant Nmap (parfois appelée "analyse ping") envoie de nombreuses sondes différentes, pas seulement des demandes d'écho ICMP. Pour les adresses sur la même liaison de données, il utilise des requêtes ARP, qui sont fondamentalement impossibles à ignorer.
bonsaiviking le

1
Vous devez également vous rappeler que les hôtes qui ne sont pas sous tension s'afficheront également comme n'ayant pas d'adresse IP.
Tero Kilkanen

Réponses:


26

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:

  1. Vous devez exécuter l'analyse en tant que root (ou administrateur sous Windows) afin d'envoyer des requêtes ARP, pas des connexions TCP. Sinon, l'analyse peut signaler une adresse comme «en panne» lorsqu'elle est simplement protégée par un pare-feu.
  2. Vous ne pouvez le faire qu'à partir d'un système sur la même liaison de données (couche 2) que la plage d'adresses que vous numérisez. Sinon, Nmap devra utiliser des sondes de couche réseau qui peuvent être bloquées par un pare-feu.

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:

  • Lorsque vous utilisez l' -voption, Nmap imprimera les adresses qu'il trouve comme "en baisse" en plus de celles qui sont "en hausse".
  • Au lieu de cela -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 ).
  • L' -noption 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.
  • L' -oGoption 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é.


1
Totalement en signet ceci pour une utilisation future et ce n'est même pas ma question :)
MartinC

1

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.


Lorsqu'il est exécuté avec le privilège root, Nmap effectue simplement la requête ARP et signale les adresses qui répondent.
bonsaiviking

0

Voici la même chose dans PowerShell ....

((nmap -v -sn -n 10.208.2.0/24 -oG - ) -match "Status\:\sDown") | foreach {($_).Split(" ")[1]}

0

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"

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.