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

Hoe kan ik alle IP's in het aangesloten netwerk vermelden, bij voorkeur via Terminal?

Met behulp van Ubuntu 10.10 vroeg ik me af of er een opdrachtregelcommando was dat alle IP’s van de apparaten die op het netwerk zijn aangesloten kan vermelden?

Ik zou dit bijvoorbeeld gebruiken om alle computers die op mijn thuisnetwerk zijn aangesloten op te sommen. Idealiter moet het een commando-regel zijn, omdat ik het vanaf C++ zal uitvoeren.

Enig idee?

Antwoorden (8)

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

Bekijk de arp-scan opdracht - u zult deze waarschijnlijk moeten installeren, bijvoorbeeld:

sudo apt-get install arp-scan

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

En om meer details te geven:

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

Waar eth0 uw apparaat is. U kunt uw apparaat vinden met:

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

Gebruik nmap. voorbeeld: nmap -sn 10.10.10.0/24 De arp-cache vertelt u alleen degenen die u recentelijk hebt geprobeerd te contacteren.

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

In windows zou dit “arp -a” zijn Ik geloof dat een equivalent van die in Linux “arp -e” zou zijn.

Deze informatie kan gevonden worden op de man pagina voor 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

Als uw netwerk 192.168.0.0/24 is, maak dan een uitvoerbaar bestand met de volgende code; Wijzig de 192.168.0 in uw eigenlijke netwerk.

#!/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

Probeer nmap te installeren (sudo apt-get install nmap) en typ nmap 192.168.1.0/24 vervangend 192.168.1 met de eerste drie delen van je ip adres (zoek het uit met ip addr).

Je kunt ook een iets minder nauwkeurige (in mijn ervaring) kaart van een netwerk krijgen door ping 192.168.1.255 (opnieuw vervangend 192.168.1) te draaien, die zou een ping aan elke machine op het netwerk moeten geven, maar in mijn ervaring niet altijd correct functioneert.

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

Kwam met het volgende op een nexus met tmux als arp-scan is niet in de repo maar nmap kwam voorgeïnstalleerd, geeft alleen de ip-adressen weer:

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

Voor een meer compacte lijst van aangesloten apparaten:

nmap -sL 192.168.0.* | grep \(1

Uitleg.

nmap -sL 192.168.0.* geven alle IP’s in subnetwerk weer en markeren die, die naam hebben:

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

Aangezien alle interessante records beginnen met haakjes ( en cijfer 1, filteren we daarvoor met | grep \(1 (backslash is nodig om aan haakjes te ontsnappen)

Quirk Pas op dat als twee apparaten dezelfde naam hebben, nmap alleen het apparaat laat zien, dat met de router was verbonden laatst

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

Voortbordurend op het antwoord van 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