Question Comment trouver toutes les adresses IP utilisées sur un réseau


Dans mon travail, il y a beaucoup d'ordinateurs et je veux faire une blague. Je peux fermer un ordinateur sur le réseau mais trouver des adresses IP est difficile pour moi.

Comment puis-je trouver facilement toutes les adresses IP en ligne de 192.168.1.aa à 192.168.1.zz?


79
2017-12-02 11:35


origine


essayer angry ip scanner - Web-E
duplicata possible de Comment trouver une adresse IP inutilisée sur un réseau? - Lekensteyn
sérieusement? vous voulez notre aide pour farcir vos collègues? - Dan H


Réponses:


Généralement, nmap est très utile pour analyser rapidement les réseaux.

Pour installer nmap, entrez la commande suivante dans le terminal:

sudo apt-get install nmap

Une fois l'application installée, entrez la commande suivante:

nmap -sn 192.168.1.0/24

Cela vous montrera quels hôtes ont répondu aux requêtes ping sur le réseau entre 192.168.1.0 et 192.168.1.255.


Pour les anciennes versions de Nmap, utilisez -sP:

nmap -sP 192.168.1.0/24

Pour plus de références, voir les pages suivantes:

Guide d'installation NMAP

Guide de référence NMAP

C'est un outil très utile pour apprendre.


122
2017-12-02 11:51



Tous les hôtes ne répondent pas aux pings. L'ARP est la voie à suivre, au moins dans IPv4. - Marcin Kaminski
c'est assez pour moi et ça marche sur internet
est-ce juste mon ordinateur, ou est-ce que cette commande prend une éternité pour fonctionner? - JohnMerlino
Remarque: pour accélérer le scan nmap, vous devez ajouter les indicateurs -T4 (speed) et -n (numérique uniquement). - Sergiy Kolodyazhnyy
Rappelez-vous que vous avez besoin sudo pour la commande nmap, sinon aucun résultat n'est renvoyé. - machineaddict


Si tous les ordinateurs de votre réseau sont Ubuntu ou toute autre distribution utilisant avahi-daemon (DNS-SD), vous pouvez en obtenir une liste détaillée (avec nom d’hôte et adresse IP) en procédant comme suit:

avahi-browse -rt _workstation._tcp

Si vous souhaitez connaître toutes les adresses IP utilisées dans votre réseau, vous pouvez utiliser arp-scan:

sudo arp-scan 192.168.1.0/24

Comme il n’est pas installé par défaut, vous devrez l’installer avec sudo apt-get install arp-scan. arp-scan envoyer des paquets ARP au réseau local et affiche les réponses reçues, de sorte qu'il affiche même les hôtes avec pare-feu (qui bloquent le trafic basé sur les paquets IP).


35
2017-12-02 15:07



Cette commande est nettement meilleure que celle ci-dessus. En cours d'exécution nmap a pris des années, mais celui-ci a répondu instantanément avec les nœuds du réseau spécifié. - JohnMerlino
Dans mon cas, très souvent, arp-scan ne trouve pas tous les appareils associés à mon réseau sans fil. Maintenant, par exemple, sudo arp-scan 192.168.2.0/24 affiche 2 résultats (.1 et .1), tandis que nmap -sn 192.168.2.0/24 affiche 4 résultats (.1, .2, .3 et .4). Donc, il semble que nmap est plus précis (je sais avec certitude que 4 périphériques sont connectés au réseau). Pourquoi est-ce? - tigerjack89
J'ai peut-être trouvé la réponse dans un commentaire à une autre question. "Il est à noter que certains périphériques peuvent ne pas apparaître à moins d'être allumés. Mon nexus 4 ne s'affichera que si l'écran est allumé." Cependant, il est intéressant que les mêmes appareils répondent toujours aux pings de nmap. - tigerjack89
arp-scanc'est sympa! - forzagreen


Netdiscover peut être votre réponse.

Pour installer via un terminal:

sudo apt-get install netdiscover

exemple d'utilisation:

sudo netdiscover -r 192.168.1.0/24 -i wlan0

Une adresse IP avec MAC Addreses sera affichée sur votre terminal. Voir la capture d'écran

enter image description here

j'espère vous aider

référence


14
2017-08-03 06:25



Semble très buggé, essayez d'abord et *** buffer overflow detected ***: netdiscover terminated. - Pablo Bianchi


Note au lecteur: La réponse originale a été publiée il y a quelque temps et à l'époque où je ne faisais qu'apprendre les scripts shell. Voir la version revisitée ci-dessous pour un nouveau script amélioré qui fonctionne beaucoup plus rapidement.

Réponse originale

nmap serait mon choix n ° 1, mais si vous ne l'avez pas? Le bricolage serait avec un script ping qui passe chaque adresse IP possible sur le réseau manuellement. Ce que nous avons ici, c'est juste while loop, où nous définissons le dernier numéro dans l'adresse, faisons un ping unique silencieux à l'adresse, vérifiez si la commande a réussi ou non (et si elle a réussi, alors printf déclaration. Rapide et sale, il m'a fallu environ 10 minutes pour l'écrire, mais le temps d'exécution pourrait être un peu lent, cependant.

#!/bin/sh
# set -x
NUM=1

while [ $NUM -lt 256  ];do 
    ping -q -c 1 192.168.0.$NUM > /dev/null 
    RESULT=$(echo $?)
    if [ $RESULT -eq 0 ]; then 
        printf 192.168.0.$NUM"\n"
    fi
    NUM=$(expr $NUM + 1)
done

Réponse revisitée

J'ai initialement publié cette réponse en août 2015. Depuis, j'ai appris un peu plus sur le script shell et une fois que j'ai vu ce script, j'ai pensé que ce serait une bonne idée de revoir cette réponse pour ajouter quelques améliorations. Voici quelques idées:

  • Le script est évidemment lent et ping attend la réponse de l'hôte. Par défaut, ping pour deux RTT, qui peut varier en fonction de la congestion de votre réseau, et pour autant que je sache, le protocole TCP double le temps d’attente (au moins selon ce). Nous pourrions donc forcer ping à sortir avec -w 1 drapeau. Comme nous avons 256 adresses et que nous supposons 1 seconde pour chaque adresse, le script prendra environ 256/60 = 4,27 minutes.

  • Faire une commande puis capturer son statut de sortie avec $? n'était pas vraiment nécessaire. le if ... then;...fi peut fonctionner directement sur les commandes. En d'autres termes, il suffit de faire ceci:

    if ping -w 1 -q -c 1 192.168.0.$NUM > /dev/null ;
    then
         <some other code here>
    fi
    
  • le printf la commande peut être réécrite comme tel:

    printf "IP %s is up\n" 192.168.0."$NUM"
    

    C’est plus un changement de style, mais cela concorde avec la façon dont printf fonctionne et ressemble à beaucoup d'autres langues, avec des citations "$NUM" variable. Citer ici n'est pas nécessaire - puisque nous ne traitons que des nombres, nous n'avons pas besoin d'anticiper le fractionnement des mots en raison de la présence d'espaces dans une variable.

  • Une meilleure amélioration des performances peut être obtenue si nous générons plusieurs processus d'arrière-plan. Le script édité ci-dessous fait exactement cela. J'ai mis le ping et printf dans une fonction, pingf (oui, nom ringard, je sais). Maintenant, il y a aussi un seul main fonction qui fait le bouclage et l'appel de pingf.

#!/bin/sh
# Uncomment for debugging
#set -x
pingf(){
    if ping -w 2 -q -c 1 192.168.0."$1" > /dev/null ;
    then 
        printf "IP %s is up\n" 192.168.0."$1"
    fi
}

main(){

    NUM=1
    while [ $NUM -lt 255  ];do 
        pingf "$NUM" &
        NUM=$(expr "$NUM" + 1)
    done
    wait
}

main

À quel point cela fonctionne-t-il? Pas mal, en fait, prend quelques secondes.

$ time ./ping_script.sh                                                                      
IP 192.168.0.1 is up
IP 192.168.0.101 is up
IP 192.168.0.27 is up
IP 192.168.0.29 is up
    0m02.50s real     0m00.01s user     0m00.12s system

Choses à garder à l'esprit

  • Windows (à partir de Windows 7, je pense) a commencé à bloquer la réponse aux requêtes d'écho ICMP. Il y a pas mal de questions à ce sujet sur Ask Ubuntu et d'autres sites du genre "Hey, mon ordinateur Linux peut être cinglé, mais pas ceux de Windows, qu'y a-t-il?" Sachez simplement que pour les nouvelles versions de Windows, vous devez activer la réponse à l'écho ICMP.

14
2017-08-03 07:43



J'aime ce genre de solution - Szenis


fping est un excellent outil pour scanner plusieurs hôtes sur un réseau via ICMP. S'il n'est pas installé, vous pouvez l'installer en:

sudo apt-get install fping

fping envoie des paquets ICMP ECHO_REQUEST et marque un hôte comme Up s'il obtient ECHO_RESPONSE de l'hôte.

Par exemple, pour analyser les hôtes du sous-réseau 192.168.1.0/24, tu peux faire:

fping -g 192.168.1.0/24

Pour un nombre spécifique d'hôtes, par ex. de 192.168.1.15 à 192.168.1.140:

fping -g 192.168.1.15 192.168.1.140

fping est hautement configurable, par ex. combien de paquets seront envoyés, le temps d'attente pour la réponse, le format de sortie, etc.

Vérifier man fping pour avoir plus d'idée.


4
2018-02-21 02:21