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++.
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++.
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
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.
@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 ?
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
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.
1 votes
askubuntu.com/questions/82480/ || serverfault.com/questions/72380/
2 votes
Encore des doublons : 1. Obtenir toutes les IP des appareils connectés au même routeur . 2. Afficher la liste des ordinateurs d'un réseau local sous Linux
1 votes
3. Meilleure méthode et meilleurs outils pour l'analyse de l'IP locale