wie kann man ip adressen im lan finden?

ich möchte für ein win98 lan ein kleines client/server (chat) proggi coden. (in delphi 4)
das problem: wie kann ich herausfinden welche rechner (ob hostname ode ip ist egal) gerade online sind, also auch dieses programm gestartet haben?
 
Du richtest einen PC als Server ein. Auf diesem läuft die Server-Software deines Chat-Proggis. Wenn jetzt jemand nen Client startet loggt sich dieser dort ein.
 
Das Problem bei diesem "zentralen" Netzwerk ist, dass der Server verfügbar sein muss.
Es gibt noch eine Alternative. Wenn ein Benutzer das erste mal den Chat benutzt, meldet er sich am Server an und überträgt Hostname bzw IP und Namen. Aus den verschiedenen Anmeldungen kreiert der Server eine Name-to-IP-Tabelle, mit deren Hilfe man einem Chatnamen eindeutig eien IP zuweisen kann.
So, und nun kommt das Thema ausfallsicherheit:

Immer wenn sich ein Client am Server anmeldet, übernimmt er diese Tabelle und nutzt diese offline, d.h. eine weitere Verbindung zum Server ist nicht notwendig.
Dies hat den Vorteil, dass, wenn der Server mal ausfallen sollte, die Clients die zuletzt aktuelle Tabelle noch lokal haben.
 
eine möglichkeit zu ner serverlosen möglichkeit gibt es auch: du musst dann einfach jedem client beibringen, dass er in einem von dir gewählten abstand ein broadcast packet verschickt.
problem daran ist nur, dass alle im gleichen subnet sein müssen was jedoch bei einem lan normalerweise der fall ist.
 
@all:
das problem ist, das der server nicht immer auf demselben rechner läuft, und dieses prog soll auch von leuten gestartet werden können, für die hostnamen oder ip adressen böhmische dörfer sind.

@soox:
genau das habe ich gesucht. wie macht man so was?
 
wie du das programierst kann ich dir leider auch nicht sagen...die sprache musst du schon selber beherschen, kann dir höchstens mit der theorie helfen
 
Zuvor musst Du grundlegend unterscheiden ob Du ein ptp chat oder einen wo > 2 Partner miteinander chatten wollen.

Beim ptp koenntest Du das folgendermaszen anstellen:

Die software kann als Server oder Client laufen, wa sman bei Programmstart
auswaehlen kann.

Startet sie als server verbleibt sie im listen Status, bis ein client connected

Startet ein client so versucht er einfach auf dem vorgegeben Port zu allen REchnern zu connecten. Der REchner der den Port offen hat meldet sich dann natuerlich.
(wobei hier Probleme auftauchen, wenn mehrere leute ptp chatten wollen)

Was soox sagt ist natuerlich moeglich, nur muss dann der BEnutzer immer noch die richtige IP dann auch auswaehlen.

Du koenntest auch auf die hosts Datei zugreifen, sofern dort eintraege sind und dem USer es ueberlassen einfach die Rechnernamen einzugeben (wozu sie diese kennen muessen und natuerlich wo wer an welchem REchner sitzen)

Fazit: Mache einen "richtigen" server vielleicht mit ner Datenbank fuer die messages.
Oder du musst gewaehrleisten dasz wirklich nur 2 LEute die software starten (in jedem Fall musst Du zumindest eine Art Server machen..denn einer muss ja anfangen)..

Mach Dir mal ein richtiges Konzept, was Du genau willst und dann poste das nochmal..

mfg

:wq!
 
Original von seth
Was soox sagt ist natuerlich moeglich, nur muss dann der BEnutzer immer noch die richtige IP dann auch auswaehlen.

die ip ist bei meiner möglichkeit transparent...

nochmal damit es alle verstehen:
das ganze ist eine lösung ohne server bzw mit nur server (jenachdem wie man das anschaut). die clients lauschen alle z.b. auf den port 5555 (must halt schauen welche noch frei sind). jeder client schickt nun in einem 5 min abstand ein broadcast packet mit seinen informationen (user, ...) an alle anderen im gleichen subnet. diese anderen clients wissen nun dass da ein user mit der ip des absendes des packets vorhanden ist. jeder client muss dann halt seine user--> ip tabelle selbst verwalten und wenn einmal nach 5 min kein packet kommt den eintrag entfernen.
bedenken ala "das netzt wird hier aber zusätzlich belastet" ist bei dieser anwendung nicht von bedeutung da pro 5minuten/client nicht einmal 1kb verschickt wird. in nem lan also nicht einmal spürbar
 
und wie genau verschickt man denn jetzt ein broadcast paket? *heul* das ist doch das ganze problem, den rest mit server und client krieg ich doch auf die reihe!!
 
Original von blueflash
und wie genau verschickt man denn jetzt ein broadcast paket? *heul* das ist doch das ganze problem, den rest mit server und client krieg ich doch auf die reihe!!

indem du das ip packet an die ip "255.255.255.255" schickst
 
Original von Chris
Ist diese Adresse immer die Broadcastadresse oder gilt das nur in bestimmten IP-Bereichen?

diese adresse ist immer die broadcast adresse. zusätzlich gibt es noch die broadcastadresse für das subnet. diese ist immer DIE LETZTE ip des subnetzes

bsp:
Code:
IP                     SUBNET                BROADCAST
192.168.1.0     255.255.255.0     192.168.1.255
192.168.1.0     255.255.0.0         192.168.255.255
 
Okay, also das mit dem Subnet hab ich verstanden. Wenn also 255.255.255.255 als Broadcast IP genutzt wird, verschickt er dann doch den Broadcast an alle IPs, die es gibt, oder blick ich doch nicht durch?
 
ja theoretisch schickt er es an an ALLE PC's auf der welt. JEDOCH leitet ein router standardmässig keine broadcast packete weiter, desshalb funktioniert das ganze nur im lan (normalerweise wird dort nur nen router für inet connection verwendet). dies tun nur switchs und hubs.
 
Zurück
Oben