Ich bin ein Webentwickler, der versucht, die Sicherheit besser in den Griff zu bekommen. Ich versuche einen Weg zu finden (unter Linux / Debian-basierten Distributionen), um alle Computer in demselben LAN aufzulisten, in dem sich mein Netbook befindet. Ich habe "arp -n" ausprobiert, aber ich glaube nicht, dass es eine vollständige Liste ist, da sich mein iPhone auf demselben WLAN-Router befindet wie mein Netbook, und das ist nicht aufgetaucht. Gibt es eine bessere Möglichkeit, eine vollständige Liste der Computer abzurufen, die alle dasselbe Gateway gemeinsam nutzen?
networking
wireless-networking
security
CaptSaltyJack
quelle
quelle
Antworten:
Holen Sie sich nmap . Es ist das Programm Trinity, das in The Matrix verwendet wird, und Sie können einen Scan durchführen, um alle Geräte zu finden, die mit dem LAN verbunden sind, in dem Sie sich befinden, und vieles mehr.
Hier ist die Referenzanleitung.
quelle
sudo apt-get install nmap
Dies ist, was ich benutze, nmap und eine Adresse unter Verwendung der CIDR-Blocknotation des Netzwerks, das Sie scannen möchten. Zuerst müssen Sie nmap installieren, da es möglicherweise nicht bei Ihrer Distribution vorinstalliert ist. Auf Ubuntu:
Bestimmen Sie als Nächstes Ihre Netzwerkadresse mit ifconfig:
ifconfig-Ausgabe für die Schnittstelle, die ich scannen möchte:
Verwenden Sie die inet-Adresse und die Maske, um die Netzwerkadresse in CIDR-Notation zu ermitteln. Weitere Informationen zu CIDR finden Sie hier . Die adresse ist:
Führen Sie nmap mit dem Parameter -sP aus. Dabei wird nur geprüft, ob der Host online ist:
Die Ausgabe von nmap sieht ungefähr so aus:
Wenn Sie weitere Hilfe zu nmap benötigen, lesen Sie die offizielle Dokumentation zu nmap oder führen Sie Folgendes aus:
quelle
nmap -sA 192.168.1.0/24
Die Option nmap-sA
zeigt ähnliche beschreibende Ergebnisse mit besserer Lesbarkeit, einschließlich Gerätename, IP, Mac usw., wie die Option-sP
. Ich persönlich bevorzuge aus Gründen der Lesbarkeit -sA gegenüber -sP.arp -n
Zeigt Ihnen nur Computer in Ihrem LAN an, mit denen Ihr Computer bereits gesprochen hat. Sie können diese Liste besser füllen, indem Sie die Broadcast- und All-Hosts-Multicast-Adressen anpingen:Die (binäre) Broadcast-Adresse für "Alle". Beachten Sie, dass die meisten IP-Stacks dies in die Subnetz-Broadcast-Adressen für alle Subnetze übersetzen, an die Sie angeschlossen sind:
Die Subnetz-Broadcast-Adresse für Ihr aktuelles Subnetz. Angenommen, Sie sind auf 192.168.1.0/24:
Die Multicast-Adresse "Alle Hosts". Ich mag dieses Modell sehr, da es mit größerer Wahrscheinlichkeit Hosts findet, die für andere IP-Subnetze konfiguriert sind und an dasselbe Ethernet-LAN wie Sie angeschlossen sind:
Beachten Sie, dass diese Methode und die anderen Methoden, die ich bisher in anderen Antworten erwähnt habe, nur nach IP-erreichbaren Hosts im aktuellen Netzwerk suchen. Das ist wahrscheinlich alles, worüber Sie sich Gedanken machen müssen, aber es ist möglich, dass ein Angreifer ein Netzwerk ausspioniert oder schlechte Dinge tut, ohne über IP sichtbar zu sein.
quelle
ip neigh
undhosts
. NO nmap erforderlich / NO sudo erforderlich .Darauf aufbauend können Sie ein Python-Skript erstellen:
Herunterladen über
(oder einfach
arp
... das habe ich vorher nicht gesehen)quelle
ip neigh | awk '{ print $1 }' | xargs -n1 host
ip n
kurz gesagt. Vielleicht besserip n | grep REACHABLE
.Ich fand die vorhandenen Antworten nicht zufriedenstellend genug und dachte, ich würde es versuchen. Immerhin schlägt die FAQ vor, Kontext für Links bereitzustellen .
nmap
ist toll, wenn auch etwas verwirrend zu bedienen. Hier ist etwas, das ich ausführe, um lokale Netzwerkgeräte zu entdecken, die größtenteils kopierfähig sind.nmap -sP
(odernmap -sn
) Scans per Ping . Es gibt andere Optionen für die 'Hosterkennung', wie z . B. mitnmap -sL
odernmap -Pn
.Weg Nr. 1.
Weg Nr. 2. Ich weiß, dass dies funktioniert, aber ich kann nicht sagen, ob dies der richtige Weg ist.
Ich würde mich freuen zu wissen, ob es effektivere Möglichkeiten gibt. Bis dahin bleibe ich dabei.
quelle
Sie können beispielsweise versuchen, ein bestimmtes Subnetz mit einem kleinen Linux-Shell-Skript zu pingen
quelle
ip n
FAILED für alle.Hunt ist ein Befehlszeilentool, mit dem eine Liste von Computern erstellt werden kann, die zur Information über das Netzwerk übertragen werden. Es verwendet TCP-, UDP-, ICMP- und ARP-Daten, um eine Liste der aktiven MAC-Adressen in einem Netzwerk zu erstellen. Es ist ein passives Werkzeug, das durch Abhören des Kabels funktioniert.
quelle
Für eine kompaktere Liste der angeschlossenen Geräte:
Erläuterung.
nmap -sL 192.168.0.*
listet alle IPs im Subnetz auf und markiert diejenigen, die den Namen haben:Da alle interessanten Datensätze mit Klammern
(
und Ziffern beginnen1
, filtern wir danach mit| grep \(1
(Backslash wird benötigt, um Klammern zu umgehen).Quirk
Beachten Sie, dass , wenn zwei Geräte den gleichen Namen haben,
nmap
zeigen nur das eine, das war mit Router verbunden letztenquelle
So scannen Sie den Status eines IP-Adressbereichs:
Woher:
Hinweis:
-sn
war bekannt als-sP
Ich habe das unter Mac OS X gemacht (das auf BSD basiert). Ich bin nicht sicher, ob die Linux-Version irgendwelche Unterschiede aufweist.
quelle
1. Alternative Lösung, wenn Sendungen und
nmap
nicht verfügbar sind:2a. oder fragen Sie einfach Ihren Domain Name Server :
2b. ohne awk
Pingt alle pingfähigen Netzwerkgeräte im Subnetz 192.168.2.0/24 parallel (um die Laufzeit zu verkürzen). Danach
arp
sollte jedes Gerät anzeigen, welches geantwortet hat.Prüft nicht auf aktive oder aktuelle Verbindungen, sondern listet alle Verbindungen auf, für die der lokale Domänendienst einen Eintrag führt, auch für wirklich alte.
Detailliertere Erklärung:
seq 254
alle Zahlen von 1 bis 254 (für alle Zahlen von 100 bis 150: erzeugenseq 100 150
)xargs
ruft aufping
und ersetzt "IP" (-iIP
) durch dieseq
Uence-Nummer von stdin, sodass 192.168.2.IP für die ersteseq
Nummer in 192.168.2.1 geändert wird. Gibt an, wie-P
viele gleichzeitigeping
Prozessexargs
gestartet werden sollen. Ich wähle die gleiche Anzahl +1 als Adressen. = 254) Ich bin interessiert.ping
mit der von xargs (192.168.2.IP
) geänderten IP-Adresse und nur einmaligem Ping (-c1
);-i
In diesem Fall müssen Sie denselben Bezeichner verwenden, der für xargs über dem Argument angegeben wurdeIP
grep time=
um jede zeile mit überflüssigen informationen zu entfernen, sind wir nur an antworten interessiert, die eine umlaufzeit angeben (= antwort bekommen)arp -a
um gültige Namen (IP) -Paare anzuzeigenIch nenne dies meinen Pingall- Befehl und stelle ihn über einen Alias in
~/.bashrc
:quelle
Sie könnten fping verwenden
sudo apt-get install fping
(in Debian-ähnlichen Betriebssystemen).fping ähnelt ping, bietet jedoch eine wesentlich bessere Leistung beim Pingen mehrerer Hosts. Das Flag -r 1 weist fping an, nur eine Runde durchzuführen. Mit dem 2> 1- Teil kann grep die Ausgabe filtern.
Würde etwa anzeigen:
Es gibt auch ein interessantes Flag für nmap , mit dem Sie den MAC-Anbieter sehen können - sofern bekannt. Verwenden Sie mit sudo , um die MAC-Adressen anzuzeigen.
Sie würden zum Beispiel bekommen:
quelle