Entwickler-Ecke

Internet / Netzwerk - IP-Adresse aus der Indy-UDPRead auslesen!


barrais - Di 18.03.08 12:11
Titel: IP-Adresse aus der Indy-UDPRead auslesen!
Hallo,

ich benutze die UDPServer-Komponente von Indy, und brauche, um den Teilnehmer zu identifizieren, die IP-Adresse bei UDPRead auszulesen, weiss jemand wie ich das machen kann?

Danke.


Yogu - Di 18.03.08 12:20

Hallo user profile iconbarrais,

wenn du die interne IP wissen willst, verwende am besten Suche in: Delphi-Forum, Delphi-Library TIDIPWATCH. Im Ereignis OnStatusChanged kannst du dann den Onlinezustand (IdIPWatch1.IsOnline) sowie die interne IP (IdIPWatch1.CurrentIP) herausfinden.

Grüße,
Yogu


barrais - Di 18.03.08 12:27

Super..!
Danke dir, ich werde es versuchen.


barrais - Di 18.03.08 12:56

es hat leider nicht geklappt.
Ich habe das so gemacht:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TFormMain.UDPServerUDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
 var
 UDPData : String;
 begin
     SetLength(IP_ADDR,4);
     IP_ADDR[1] := IdIPWatch1.CurrentIP;
     MBMemo.Lines.Add(IP_ADDR);
 end;

was mach ich denn falsch?


PeterPain - Di 18.03.08 13:41

Wenn es dir um die Adresse des Clients geht (und davon geh ich mal aus) solltest du einfach ABinding.PeerIP nutzen

gruss


barrais - Di 18.03.08 13:49

user profile iconPeterPain hat folgendes geschrieben:
Wenn es dir um die Adresse des Clients geht (und davon geh ich mal aus) solltest du einfach ABinding.PeerIP nutzen

gruss

Ich danke dir vielmals, es hat funktioniert.


Yogu - Di 18.03.08 19:41

Obwohl das Thema schon gelöst ist:

Bitte schreibe nicht etwas wie "Es tut nicht". Bei dem Code oben ist ein Fehler aufgetreten, und der heißt "Inkompatible Typen: 'Char' und 'String'". Bitte schreibe diesen Fehler immer dazu.

Wenn du einen String (IdIPWatch1.CurrentIP) einem anderen String (IP_ADDR) zuweisen willst, dann brauchst du da keine eckigen Klammern oder sonst was. Einfach Dest := Source;