finden Sie alle ip-Adresse in einem Netzwerk
Ich versuche, dies zu tun C#. Ich muss alle ip-Adresse, die aktiv sind in meinem Netzwerk und zeigt diese in einer Liste an. Ich kann ping alle zur Verfügung (1...255) ip-Adresse in einem Netzwerk. Aber ich möchte, um diesen Prozess zu beschleunigen.
- Wenn Sie möchten, um es schneller zu machen, ping alle IPs in der gleichen Zeit:
Ping.SendAsync
. - Ich habe gerade lief ein Befehl Ping, wie dies
for /l %n in (1,1,255) do ping 192.168.10.%x
mit Prozess.start() und dann später Lesen Sie die arp-Tabelle den Eintrag finden Sie jede ip-Adresse im Netzwerk. aber das sehr langsam. Brauchen, um diese schnell. - wie viele IP-Adressen sind möglich im Netz und was ist "schnell genug"
- Habe ich eine cut-and-paste-ready code in meiner Antwort. sehen, ob das funktioniert für Sie.
- Holen Sie sich Ihre Netzmaske ein und führen Sie eine broadcast-ping, z.B.
ping 192.168.0.255
. Denken Sie jedoch daran, die firewalls können entscheiden, das ignorieren von broadcast-pings oder zu ignorieren, jede Art von ping-Zeit.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diesen code scannt meine Netzwerk-255 D-Klasse-Segmenten in etwa 1 sec. Ich schrieb es in VB.net und übersetzt es in C# (entschuldigt, wenn Fehler vorhanden sind). Fügen Sie es in eine Konsole ein Projekt, und ausführen. Bei Bedarf ändern.
Hinweis: Der code ist nicht Produktion bereit und müssen Verbesserungen vor allem auf die Instanz gezählt werden (versuchen Sie umzusetzen eine
TaskFactory
mit einemBlockingCollection
statt).Ändern ttl (time-to-live) und timeout wenn instabilen Ergebnis-Weise.
Ausführen des Codes wird ein Ergebnis geben, wie diese:
C# - code:
Und VB.net code:
Entnehmen Sie bitte Dieser link über Asynchrone Client-Socket, um zu lernen, wie ping schneller.
Edit: Einen kurzen Ausschnitt, wie Sie dies bewerkstelligen:
Entnommen diese Microsoft-Dokumentation.
wenn Sie gehen wollen, dass die ARP-route, können Sie einfach senden ARP-Anfragen für Adressen, ein bisschen warten, und schauen in die ARP-Tabelle von Ihrem host -
dies kann helfen,
http://www.codeguru.com/cpp/i-n/internet/internetprotocolip/article.php/c6153/How-to-Get-an-ARP-Table-with-an-IP-Helper-API.htm
http://www.advanced-ip-scanner.com/. dieses ein Werkzeug, das Sie verwenden können, um zu sehen, welche ip ' s sind im Netzwerk aktiv. auch, welche Art von Netzwerk-hardware, die am PC verwendet.