272 votes

Comment puis-je lister toutes les IPs du réseau connecté, via le Terminal de préférence ?

En utilisant la ligne de commande d'Ubuntu 10.10, comment puis-je lister toutes les IPs connectées à mon réseau domestique ?

Idéalement, il doit s'agir d'une commande CLI car je l'exécuterai à partir de C++.

5voto

Pour obtenir une liste plus compacte des appareils connectés :

nmap -sL 192.168.0.* | grep \(1

Explication.

nmap -sL 192.168.0.* va lister toutes les IPs du sous-réseau et marquer celles qui ont un nom :

Nmap scan report for 192.168.0.0
Nmap scan report for Dlink-Router.Dlink (192.168.0.1)
Nmap scan report for 192.168.0.2
...
Nmap scan report for android-473e80f183648322.Dlink (192.168.0.53)
...
Nmap scan report for 192.168.0.255

Comme tous les enregistrements intéressants commencent par des parenthèses ( et le chiffre 1 nous filtrons cela avec | grep \(1 (la barre oblique inverse est nécessaire pour échapper aux parenthèses)

Quirk
Attention, si deux appareils ont le même nom, nmap ne montrera que celui qui était connecté au routeur. dernier

0 votes

Si vous avez exactement la même réponse à deux questions, il peut être utile de signaler les questions comme étant dupliquées plutôt que de poster des réponses dupliquées. De cette façon, les connaissances peuvent être partagées car les questions similaires sont liées entre elles.

1 votes

@Mokubai Vous avez raison, j'ai ajouté un commentaire à l'OP. Cela montre un problème intéressant. A rapide La recherche a découvert 6 doublons (cette Q et 5 liens) sur 4 sites du réseau (SU, Ask Ubuntu, SF, Unix). Il y en a sûrement beaucoup plus ! Comment puis-je gérer cela ? Idéalement, chacun de ces 6 posts devrait avoir un lien vers 5 autres. Ajouter tous ces liens à la main n'est clairement pas possible. Donc, pour l'instant, j'ai mis un lien vers cet article (le plus voté). Un autre problème est qu'il est impossible de marquer Q sur AskUbuntu comme un duplicata de Q sur SU. Hm... Probablement, cela a déjà été discuté sur le meta ?

0 votes

Ne fonctionne pas pour moi sur Centos 7, il ne fait que lister toutes les adresses IP possibles du réseau, sans noms. arp-scan a fonctionné pour moi.

4voto

zentek Points 41

J'ai trouvé ce qui suit sur un nexus en utilisant tmux como arp-scan n'est pas dans le repo mais nmap livré pré-installé, n'affiche que les adresses IP :

nmap -sn 192.168.1.1-254/24 | egrep "scan report" | awk '{print $5}'

1voto

Mathieu CAROFF Points 111

Pour approfondir la réponse d'Anders Larrson -

#!/bin/bash
function scan ()
{
    for ip in $1.{1..254}; do
        ping -c 1 -W 1 $ip &
    done | sed -nE 's:^.* from ([0-9.]+).*time=(.*s)$:\1 (\2):p'
}

if [ $1 ]; then
    for baseip; do
        scan $baseip
    done
else
    scan 192.168.1
fi

1voto

Dmart Points 304

Cette réponse détermine le sous-réseau par elle-même alors que dans les autres réponses vous devez le fournir.

Le script utilise arp -a o ip -o -f inet addr show pour trouver le sous-réseau.

J'ai construit le script en élaborant sur les réponses de @anders-larsson et @mathieu-caroff. J'évite l'utilisation de 'nmap', mais le script est facilement modifiable pour utiliser nmap.

En gros, $baseip est construit en utilisant des macros de remplacement bash dans la deuxième partie du script si aucun paramètre n'est fourni sur la ligne de commande. Sinon, il scanne le sous-réseau fourni (style : 192.1.5 sans le troisième point dernier octet de l'IP).

#!/bin/bash
function scan ()
{
    for ip in $1.{1..254}; do
        ping -c 1 -W 1 $ip &
    done | sed -nE 's:^.* from ([0-9.]+).*time=(.*s)$:\1 (\2):p'
    wait
}

if [ $1 ]; then
    for baseip; do
        scan $baseip
    done
else
    baseip=$(arp -a) && baseip=${baseip%%\)*} && baseip=${baseip##*\(}
    if [ $baseip"" == "" ] ; then
      baseip=$(ip -o -f inet addr show|grep "scope global") && baseip=${baseip##* inet} && baseip=${baseip%%/*}
    fi
    baseip=${baseip%.*}
    scan $baseip 
fi

0voto

PAPPL Points 1

Voici une autre solution en terminal :

nmap -sn 192.168.1.0/24

(si l'ip de votre routeur commence par 192.168.1._ )

ou

ip n

ou

ip -r n

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X