2011-03-24 13:27:13 +0000 2011-03-24 13:27:13 +0000
228
228

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

En utilisant Ubuntu 10.10, je me demandais s'il existait une commande en ligne de commande qui puisse lister toutes les IP des appareils connectés au réseau ?

J'utiliserais ceci par exemple, pour lister tous les ordinateurs connectés à mon réseau domestique. Idéalement, il faut que ce soit en ligne de commande car je vais l'exécuter en C++.

Des idées ?

Réponses (8)

247
247
247
2011-03-24 13:37:18 +0000

Vérifiez la commande arp-scan - vous devrez probablement l'installer, par exemple :

sudo apt-get install arp-scan

http://manpages.ubuntu.com/manpages/hardy/man1/arp-scan.1.html

Et pour donner plus de détails :

sudo arp-scan --interface=eth0 --localnet

Où eth0 est votre appareil. Vous pouvez trouver votre appareil avec :

ifconfig
115
115
115
2011-03-24 13:38:16 +0000

Utilisez nmap. exemple : nmap -sn 10.10.10.0/24 Le cache arp vous indiquera uniquement les personnes que vous avez essayé de contacter récemment.

20
20
20
2011-03-24 13:33:14 +0000

Dans windows ce serait “arp -a” Je crois qu'un équivalent de cela dans Linux serait “arp -e”.

Cette information peut être trouvée dans la page de manuel pour arp :

arp with no mode specifier will print the current content of the table.
-e : Use default Linux style output format (with fixed columns).
16
16
16
2013-05-17 18:45:14 +0000

Si votre réseau est 192.168.0.0/24, faites un fichier exécutable avec le code suivant ; Changez le 192.168.0 pour votre réseau actuel.

#!/bin/bash
for ip in 192.168.0.{1..254}; do
  ping -c 1 -W 1 $ip | grep "64 bytes" &
done
13
13
13
2013-09-08 18:56:24 +0000

Essayez d'installer nmap (sudo apt-get install nmap) et tapez nmap 192.168.1.0/24 en remplaçant 192.168.1 par les trois premières parties de votre adresse ip (découvrez en utilisant ip addr).

Vous pouvez également obtenir une carte légèrement moins précise (d'après mon expérience) d'un réseau en exécutant ping 192.168.1.255 (en remplaçant à nouveau 192.168.1), qui devrait envoyer un ping à chaque machine du réseau, mais, d'après mon expérience, ne fonctionne pas toujours correctement.

3
3
3
2016-10-30 20:33:12 +0000

Il est apparu ce qui suit sur un lien utilisant tmux car arp-scan n'est pas dans le repo mais nmap est préinstallé, n'affiche que les adresses IP :

nmap -sn 192.168.1.1-254/24 | egrep "scan report" | awk '{print $5}'
1
1
1
2016-10-20 10:32:13 +0000

Pour 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 IP dans le 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 la parenthèse ( et le chiffre 1, nous filtrons pour cela avec | grep \(1 (une barre oblique inverse est nécessaire pour échapper à la parenthèse)

Quirk Attention, si deux appareils ont le même nom, nmap n'affichera que celui qui a été connecté au routeur last.

0
0
0
2018-07-06 10:04:06 +0000

Développer 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)$: ():p'
}

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