Re: Internet IP / WAN IP herausfinden
wofür wolltest du denn bei der idHTTP-kompo ein 'body' haben?
|
Re: Internet IP / WAN IP herausfinden
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var IPSTR, IP, HP: string; BeginIP, EndIP, i: integer; begin Button1.Enabled := False; HP := ‘[url]http://www.my-server.de/cgi-bin/GiveMeMyIp.pl’;[/url] NMHTTP1.Get(HP); IPSTR := (NMHTTP1.Body); BeginIP := Pos('BEGINIP', IPSTR) + Length('BEGINIP'); EndIP := Pos('ENDIP', IPSTR); IP := ''; for i := BeginIP to ENDip - 1 do begin IP := IP + IPstr[i]; end; label1.Caption := IP; Button1.Enabled := True; end; |
Re: Internet IP / WAN IP herausfinden
bei der idHTTP-kompo geht das etwas anders.
da speicherst du mit
Delphi-Quellcode:
den quelltext in der variable "Response"
var
Response: String; begin Response := idHTTP.Get(URL); ... end; guck dir einfach mal die hilfe zu TidHTTP an. zu deine, problem: um z.B. die ip von einem anbieter wie wieistmeineip.de auszulesen könntest du es so machen:
Delphi-Quellcode:
so bräuchtest du kein script auf nem eigenen server.
procedure TForm1.Button2Click(Sender: TObject);
function ParseIP(const Text: String; out IP: String): Boolean; var idx, idx2: integer; begin result := false; idx := pos('Ihre IP-Adresse ist :', Text); if idx = 0 then exit; inc(idx, 21); idx := posEx('>', Text, idx); if idx = 0 then exit; inc(idx); idx2 := posEx('<', Text, idx); if idx2 = 0 then exit; IP := copy(Text, idx, idx2-idx); result := length(IP) >= 7; end; var http: TidHTTP; Response, IP: String; begin http := TidHTTP.Create(self); try Response := http.Get('http://www.wieistmeineip.de'); if not ParseIP(Response, IP) then raise Exception.Create('IP konnte nicht ausgelesen werden'); showmessage('Deine IP: ' + IP); finally http.free; end; end; für den hausgebrauch sollte die o.g. funktion wohl ausreichen! |
Re: Internet IP / WAN IP herausfinden
danke, funktioniert :thumb:
jetzt probier ich vergeblich, dass clientsocket1.address diesen wert zugeteilt bekommt, aber es klappt nicht. wenn ich das programm starte, bleibt das feld leer. aber wenn ich edit1.text diesen wert zuteile, klappt das. achja clientsocket1.active steht auf false mfg |
Re: Internet IP / WAN IP herausfinden
mit TClientSocket kenne ich mich nich groß aus. ich benutze für alles die jeweiligen indy-kompos.
hab aber ma grad schnell in die d7 hilfe geguckt und eigentlich sollte das gehen... is ja laut hilfe n string. was passiert denn bzw wie sieht dein code denn aus? |
Re: Internet IP / WAN IP herausfinden
Delphi-Quellcode:
mfg
function ParseIP(const Text: String; out IP: String): Boolean;
var idx, idx2: integer; begin result := false; idx := pos('Ihre IP-Adresse ist :', Text); if idx = 0 then exit; inc(idx, 21); idx := posEx('>', Text, idx); if idx = 0 then exit; inc(idx); idx2 := posEx('<', Text, idx); if idx2 = 0 then exit; IP := copy(Text, idx, idx2-idx); result := length(IP) >= 7; end; procedure TForm1.FormCreate(Sender: TObject); var Response: String; begin http := TidHTTP.Create(self); try Response := http.Get('http://www.wieistmeineip.de'); if not ParseIP(Response, IP) then raise Exception.Create('IP konnte nicht ausgelesen werden'); finally http.free; end; client.Address := IP; client.Active := true; end; |
Re: Internet IP / WAN IP herausfinden
Zitat:
eine verbindung auf irgendeinem port (denn du setzt diesen wert ja nicht) aufzubauen. |
Re: Internet IP / WAN IP herausfinden
hab ich auch gemerkt, habe es jetzt gelöst (mit dyndns)
mfg |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz