AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Internet IP / WAN IP herausfinden
Thema durchsuchen
Ansicht
Themen-Optionen

Internet IP / WAN IP herausfinden

Ein Thema von daniel-h · begonnen am 3. Jun 2009 · letzter Beitrag vom 4. Jun 2009
Antwort Antwort
Seite 2 von 2     12   
nat

Registriert seit: 10. Nov 2005
216 Beiträge
 
RAD-Studio 2009 Pro
 
#11

Re: Internet IP / WAN IP herausfinden

  Alt 3. Jun 2009, 18:24
wofür wolltest du denn bei der idHTTP-kompo ein 'body' haben?
  Mit Zitat antworten Zitat
Benutzerbild von daniel-h
daniel-h

Registriert seit: 9. Sep 2008
Ort: b.
170 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Internet IP / WAN IP herausfinden

  Alt 3. Jun 2009, 18:27
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;
  Mit Zitat antworten Zitat
nat

Registriert seit: 10. Nov 2005
216 Beiträge
 
RAD-Studio 2009 Pro
 
#13

Re: Internet IP / WAN IP herausfinden

  Alt 3. Jun 2009, 18:42
bei der idHTTP-kompo geht das etwas anders.
da speicherst du mit
Delphi-Quellcode:
var
  Response: String;
begin
  Response := idHTTP.Get(URL);
  ...
end;
den quelltext in der variable "Response"
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:
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;
so bräuchtest du kein script auf nem eigenen server.
für den hausgebrauch sollte die o.g. funktion wohl ausreichen!
  Mit Zitat antworten Zitat
Benutzerbild von daniel-h
daniel-h

Registriert seit: 9. Sep 2008
Ort: b.
170 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: Internet IP / WAN IP herausfinden

  Alt 3. Jun 2009, 19:37
danke, funktioniert

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
  Mit Zitat antworten Zitat
nat

Registriert seit: 10. Nov 2005
216 Beiträge
 
RAD-Studio 2009 Pro
 
#15

Re: Internet IP / WAN IP herausfinden

  Alt 3. Jun 2009, 19:49
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?
  Mit Zitat antworten Zitat
Benutzerbild von daniel-h
daniel-h

Registriert seit: 9. Sep 2008
Ort: b.
170 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: Internet IP / WAN IP herausfinden

  Alt 3. Jun 2009, 19:54
Delphi-Quellcode:
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;
mfg
  Mit Zitat antworten Zitat
nat

Registriert seit: 10. Nov 2005
216 Beiträge
 
RAD-Studio 2009 Pro
 
#17

Re: Internet IP / WAN IP herausfinden

  Alt 3. Jun 2009, 20:03
Zitat von daniel-h:
Delphi-Quellcode:
client.Address := IP;
client.Active := true;
was hast du überhaupt vor? im mom versuchst du zu dir selber (oder deinem router)
eine verbindung auf irgendeinem port (denn du setzt diesen wert ja nicht) aufzubauen.
  Mit Zitat antworten Zitat
Benutzerbild von daniel-h
daniel-h

Registriert seit: 9. Sep 2008
Ort: b.
170 Beiträge
 
Delphi 7 Enterprise
 
#18

Re: Internet IP / WAN IP herausfinden

  Alt 4. Jun 2009, 19:46
hab ich auch gemerkt, habe es jetzt gelöst (mit dyndns)

mfg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:01 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