# Alle IPs im Lan herausfinden und zwischenspeichern?



## Extremefall (9. Aug 2011)

Hallo,
ist es mit Java möglich, alle verfügbaren IPs im Lan herauszufinden (also wenn der PC im Lan aktiv ist)? Wenn ja, wie geht das? Gibt es da einen festen Bereich für die letzte Zahl (also xxx.xxx.x.???). Dann könnte man doch theoretisch alle möglichen Zahlen durchgehen und prüfen, ob der PC aktiv im Lan ist (falls er existiert). Geht so etwas oder ist es zu zeitintensiv? Kann man überhaupt so die IPs, die im Lan aktiv sind, herausfinden?

Dann kann man doch rein theoretisch folgendes machen oder:
1. eigene IP ermitteln (lokale).
2. Endung abschneiden.
3. Schleife von 0 bis 255 und prüfen, ob PC aktiv im Lan ist
Wenn ja, PC zur Liste hinzufügen, sonst nichts tun.

Geht so etwas? Natürlich nur für IPv4


----------



## HoaX (9. Aug 2011)

Dazu gibt es min. 100 Threads hier, und noch mehr bei Google.
-> Egal mit welcher Sprache wirst du das nicht zu 100% feststellen können und je nach Netz können verschiedenen Verfahren unterschiedlich erfolgreich sein.

Erklär lieber was du vorhast, dann kann man ehr was dazu sagen.


----------



## Extremefall (9. Aug 2011)

Ich möchte dem Server anbieten, alle Clienten anhang der IP anzuzeigen. Aber ich denke, es müsste auch folgendes gehen:

1. Client baut verbindung auf, sendet IP an den Server
2. Client schließt die Verbindung, Server sucht nach der IP in einer Liste und löscht sie.

Da so etwas vielleicht recht häufig passieren kann (Connect und Disconnect), muss ich mich noch für eine Datenstruktur entscheiden. Was empfehlt ihr mir? Ich will nämlich nicht immer erst eine Liste etc. durchlaufen. Welche Datenstruktur wäre da wohl am geeignetsten?


----------



## HoaX (9. Aug 2011)

Sobald ein Client vom Server verbunden hat kann der Server bereits von Socket die Adresse auslesen. Sonst könnte er auch kaum Antwortpakete schicken wenn er nicht wüsste wohin.


----------



## Extremefall (9. Aug 2011)

Die Verbindung existiert über RMI. Ich habe jetzt einfach an die Servermethode beim verbinden die IP übergeben.


----------

