Alle IP Adressen im Netzwerk auflisten

Bismark

Erfahrenes Mitglied
Hi Leute,
ich hätte da mal eine frage. Ist es in C++ möglich alle IP Adressen im Netzwerk zu suchen/(heraus)finden und diese heraus zu geben, ohne umbeding, dass auf ein Computer ein"C++ Server" läuft und auf alle anderen ein "C++ Client".

MfG
Bismark
 
Ich weiß nicht, ob es funktioniert, aber du kannst mal versuchen, an den Lan-Broadcast einen ping zu schicken. Falls das nicht funktioniert, musst du wohl in mehr Threads paralell die Rechner anpingen.
 
Hallo
Also das hängt ganz von den verwendeten Betriebssystemen im Netzwerk ab und der Art und Weise wie den Netzwerk funktioniert (Hub, Switch, Router ....).
MFG (Bei Windows ist dies möglich)
 
Hallo,

@kai008: habe es gerade getestet und es ist nicht möglich, alle Rechner im Netzwerk über einen Broadcast-Ping herauszufinden. Bei mir zu Hause (1 WinXP, 1 Win7, 2 Debian Lenny, 1 Fritzbox) anwortet nur die Fritzbox auf einen Broadcast-Ping.

@3Cyb3r: Bei einem Broadcast ist die Netzwerkstruktur egal; Hubs leiten sowiso alle Anfragen an alle Ports weiter, ein Switch ingegen nur Broadcasts.

@Bismark:
Wenn man dein Problem mal aufbröckelt, so stellen sich folgende Probleme / Schritte:
Zuerst musst du einmal rausfinden, welches Subnetz du an deiner Karte hängen hast. Da du das ganze in C++ realisieren möchtest, denke ich dass du hierbei Plattformunabhängig bleiben möchtest. Eventuell kann dir hier Google weiterhelfen.
Sobald du das Netz hast, kannst du alle IP-Adressen im dem Netz in einer Schleife durchlaufen und die ICMP-Ping Nachrichten schicken und die Antworten interpretieren.

Gruß
BK
 
Zuletzt bearbeitet:
Hi,
die gleiche Frage hatte ich auch mal. ;)
(siehe hier, dort steht auch der etwas ältere Sourcecode der Lösung zur Verfügung)
Nachdem ich alle möglichen Ping-Codes ausprobiert habe, die alle an den Firewalls versagt haben, hab ich dann diese Lösung gefunden:
1. alle IP-Adressen des Netzwerks (bei mir 192.168.178.2 bis 192.168.178.255) mittels der Funktion getnameinfo nach dem Hostnamen zu fragen. Hierdurch werden alle Computer angezeigt, die schonmal im Netzwerk waren.
2. mit der Funktion SendARP testen, ob der Computer erreichbar ist oder nicht, und gleichzeitig MAC-Adresse abfragen.

Der Vorteil des Programms: Bei mir im Netzwerk kann es trotz mehreren Firewalls alle Computer finden.
Wenn deine IP-Adresse im Netzwerk auch mit 192.168.178.* anfängt, kannst du mal das Programm im Anhang testen. Wenn nicht, schreibe mir einfach deine IP und ich änder es nochmal ab, den Code dazu suche ich gerade. :)
 

Anhänge

Zurück