Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Öffentliche IP der Fritz-Box in Delphi ermitteln? (https://www.delphipraxis.net/91253-oeffentliche-ip-der-fritz-box-delphi-ermitteln.html)

TOC 2. Mai 2007 12:14


Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Hi!

Ich habe folgendes Problem: Ich habe eine Fritz!-Box Fon WLan 7170 als DSL-Router und ich möchte nun die ÖFFENTLICHE Ip meiner Box mit einem Delphi-Programm ermitteln. Das Problem ist das sich diese öffentliche IP mindestens einmal innerhalb von 24 Stunden verändert, manchmal auch öfter.

Wie kann man diese IP mit Delphi abfragen ?

Ich hab schon die Suche probiert, aber da leider nix gefunden.

Danke für Eure Antworten!

Grüsse von TOC!

mkinzler 2. Mai 2007 12:18

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Die Seite Auslesen und Parsen oder dyndns verwenden und diese Auslesen.

inherited 2. Mai 2007 12:20

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
So einfach geht das leider nicht. Aber du kannst es anders machen, indem du eine Website fragst.
Siehe http://www.delphipraxis.net/internal...ct.php?t=84289

Hm, mkinzler war wieder schneller :?
(Aber ich hab einen Link :P )

WS1976 2. Mai 2007 12:21

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Hallo Toc,

ich kann dir heute Abend den zugehörigen Sourcecode senden wenn du willst.
Geht ganz einfach. Hab den Code leider nicht hier.

Viele Grüsse

WS1976 2. Mai 2007 12:22

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Hallo,

das geht mit UPNP und das kann die Fritzbox kinderleicht!

Bis später

TOC 2. Mai 2007 12:40

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Hi!

Danke für Eure Antworten :thumb: !

Also, das mit der Seite da von wegen dyndns probier ich gleich mal aus.

Zitat:

Zitat von WS1976
Hallo Toc,
ich kann dir heute Abend den zugehörigen Sourcecode senden wenn du willst.
Geht ganz einfach. Hab den Code leider nicht hier.

Oh, Danke, das wäre cool. Schick mir den Code bitte mal auch wenn das mit dyndns funkruioniert, vielleicht kann ich aus Deiner Source ja sonst irgenwas lernen.

Ich beschäftige mich grad sehr intensiv mit Netzwerkprogrammierung und TCP und spiel grad rum mit Indy 10...

Grüsse von TOC!

TOC 2. Mai 2007 12:47

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Hi!

Zitat:

Zitat von WS1976
Hallo,

das geht mit UPNP und das kann die Fritzbox kinderleicht!

Bis später

Ja, nur wie??? Kanns kaum erwarten Deinen Source zu sehen, weil das mit dyndns gefällt mir nit so richtig!

Grüsse von TOC!

oki 2. Mai 2007 12:48

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Zitat:

Zitat von WS1976
Hallo Toc,

ich kann dir heute Abend den zugehörigen Sourcecode senden wenn du willst.
Geht ganz einfach. Hab den Code leider nicht hier.

Viele Grüsse

Hi WS1976. Poste den Code doch hier, dann haben wir alle was davon. Ich bräuchte das für meinen Router "Speedport W 701V".

Gruß oki

TOC 2. Mai 2007 12:57

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Hi!

Zitat:

Zitat von oki
Hi WS1976. Poste den Code doch hier, dann haben wir alle was davon. Ich bräuchte das für meinen Router "Speedport W 701V".

Gruß oki

Ja, genau! Mit UPnP wäre am logischsten weil man dafür nicht ins Netzt gehen muss!

Ich habe folgendes probiert:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Temp: string;
begin
  Temp := IdHTTP1.Get('http://checkip.dyndns.org');
  Label1.Caption := Copy(Temp, Pos(':', Temp) + 2, Pos('</bo', Temp) - Pos(':', Temp) - 2);
  Label2.Caption:= Temp;
end;
Gut, ok, das in den Label 2 rein zu schreibben ist gewagt, ich geb´s zu!

Aber ich bekomme mit Indy 10 immer nur die Fehlermeldung:

Zitat:

Zitat von Indy 10 IdHTTP1
Socket Error # 10055 No Buffer Space available!

:gruebel: Wieso funktioniert denn dat mit dem Quote nit?

Grüsse von TOC :roll: !

TOC 2. Mai 2007 13:41

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Hi!

Also, Leute, dat hier kapier ich nun wirklich nicht. Wenn ich das D7 Testprogramm von der IDE aus Starte bekomme ich diese Fehlermeldung "No bufferspace available!", aber wenn ich direkt die kompilierte Exe starte klappts einwanfrei :wall: !

Woran kann den dat nur liegen :x ?

Grüsse von TOC!

raven_22 2. Mai 2007 18:27

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Ich hab da mal ne Funktion zusammengebaut die ohne großen Aufwand die externe IP / Internet IP anzeigt.
Getestet mit Wind XP, Delphi 7..

Delphi-Quellcode:
uses sockets;

function getExIP: string;
var web:TTcpClient;
tmp:string;
begin
   web:=TTcpClient.Create(web);
   web.RemoteHost:='checkip.dyndns.org';
   web.RemotePort:='80';
   web.Open;
   web.Sendln('GET /'+#13#10+'HOST: http://'+web.RemoteHost+#13#10);
   tmp:=web.Receiveln('#13#10');
   web.Close;
   delete(tmp,1,pos('<body>',tmp));
   result:=Copy(tmp, Pos(':', tmp) + 2, Pos('</bo', tmp) - Pos(':', tmp) - 2);
end;
LG Marko

inherited 2. Mai 2007 19:40

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Zitat:

Zitat von TOC
Ja, genau! Mit UPnP wäre am logischsten weil man dafür nicht ins Netzt gehen muss!

Im Internet musst du so oder so sein, sonst hast du auch leine öffentliche IP :stupid:

fkerber 2. Mai 2007 20:21

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Hi!

Zitat:

Zitat von inherited
Zitat:

Zitat von TOC
Ja, genau! Mit UPnP wäre am logischsten weil man dafür nicht ins Netzt gehen muss!

Im Internet musst du so oder so sein, sonst hast du auch leine öffentliche IP :stupid:

Dann kannst du aber per UPnP sehen, dass du keine öffentliche IP hast - ohne durch die Anfrage ein Connect auszulösen.


Ciao, Frederic

Chewie 3. Mai 2007 13:23

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Außerdem kannst du nicht zwischen dem Fall, dass dein Router keine Verbindung hergestellt hat und dem Fall, dass du aus irgendwelchen Gründen nicht auf eine Seite, die dir deine IP sagt, zugreifen kannst, nicht unterscheiden.

TOC 3. Mai 2007 13:24

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Hi :hi: !

Zitat:

Zitat von inherited
Zitat:

Zitat von TOC
Ja, genau! Mit UPnP wäre am logischsten weil man dafür nicht ins Netzt gehen muss!

Im Internet musst du so oder so sein, sonst hast du auch leine öffentliche IP :stupid:

Meine Fritz-Box ist eigentlich immer im Internet eingewählt, ist ja auch DSL, egal ob meine Computer an oder aus sind. Die Box meldet sich automatisch ein und bekommt von meinem Internet-Anbieter dann eine öffentlich IP zugewiesen. Einmal in 24 Stunden trennt die Fritz-Box die Verbindung und wählt sich neu ein um der Zwangstrennung durch den Anbieter zuvorzukommen.
Ja, und dat hat den Nachteil dat sich meine öffentliche IP mindestesn einmal pro Tag (manchmal auch öfter wegen Stromausfall oder sowas) ändert.

Natürlich kann man rauswählen und nen Rechner von aussen nach der eigenen IP fragen, aber ich weiss genau das das nit nötig ist, denn diese IP ist ja in meiner Fritz!-Box gespeichert. Auch kann ich das Diagnose-Programm starten und dieses zeigt die Ip an, geht über UpnP, und jetzt will ich gerne wissen wie das über UpNP mit nem Delphi-Programm geht ohne rauswählen zu müssen :roll: !

Aber vielen Dank für Eure Antworten, Eure Source-Codes find ich echt genial :thumb: ! Nun weiss ich also schon mehr über das Thema und hab zur Not die Lösung mit dem rauswählen von Euch, Danke :drunken: !

Trotzdem lass ich die Frage mal offen weil dat mit dem UpNP noch nit geklärt ist!

Zitat:

Zitat von WS1976
Hallo Toc,

ich kann dir heute Abend den zugehörigen Sourcecode senden wenn du willst.
Geht ganz einfach. Hab den Code leider nicht hier.

Viele Grüsse

Ja, poste den SourceCode bitte hier im Thread damit alle was davon haben. Hat mit gestern Abend wohl nit mehr geklappt, egal, es ist nicht so eilig. Ich wäre Dir für den Code sehr dankbar, ich brauch das für ein Programm das ich am schreiben bin.

Grüsse von TOC :stupid: !

WS1976 3. Mai 2007 13:28

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Hallo,

habs leider vergessen, machs sofort wenn ich nach Hause komme.

Sorry aber man wird älter!

WS1976 3. Mai 2007 17:32

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

hier der Code zu get_global_IP.
getestet mit einer Fritzbox 7150.
Nach dem starten der Anwendung kann es bis zu 10 Sekunden dauern bis sich das Fenster mit der IP öffnet. Der Stil des Sourcecodes ist sicher nicht sehr schön, ist einfach nur runtergetippt.

Viel Spass

oki 3. Mai 2007 17:41

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

für meinen Speedport W701V bekomme ich als Adresse 0.0.0.0 angezeigt. Ich bin definitiv online.

Gruß oki

TOC 3. Mai 2007 18:21

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Hi @ WS1976 :hi: and Hi @ all else too!

Zitat:

Zitat von WS1976
Hallo,
hier der Code zu get_global_IP.
getestet mit einer Fritzbox 7150.
Nach dem starten der Anwendung kann es bis zu 10 Sekunden dauern bis sich das Fenster mit der IP öffnet. Der Stil des Sourcecodes ist sicher nicht sehr schön, ist einfach nur runtergetippt.

Vielen vielen Dank für die Source :thumb: , der Stiel interessiert mich gar nit, da hat jeder gute Programmierer seine eigenen Macken. Aber ganz dumme Frage, das Programm läuftz bei mir leider nit weil ich hab nur Delphi 3.0 Pro oder Delphi 7.0 Pe, und mir fehlt die UPNPLib_TLB.pas leider komplett. Wo kriegt man die her? Irgendwo im Netz? Hast Du da vielleicht einen Link für mich :angel2: ? Selbst die .exe läuft bei mir nich, Fehlermeldung: Klasse nicht registriert :oops: .

Grüsse von TOC :gruebel: !

OG Karotte 3. Mai 2007 19:21

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Zitat:

Zitat von TOC
mir fehlt die UPNPLib_TLB.pas leider komplett. Wo kriegt man die her?

Ist abgeleitet von der UPnP.dll (%Systemroot%\system32\) und kann über "Komponente importieren..." (D2005; D3 bzw. D7 k.A. :( ).

Dadurch erzeugt Du Dir die UPNPLib_TLB.pas...

inherited 3. Mai 2007 19:22

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Das ist zwar toll mit UPnP, allerdings kann das nicht jeder Router. Wenn du das Programm also weiter geben möchtest, soltest du möglichst flexibel sein. Das bist du mit meiner Lösung.
Wenn es nur für dich Privat ist, ist UPnP natürlich die "elegantere" Lösung. Das mit der Zwangstrennung brauchst du mir übrigens nicht erzählen :roll:

TOC 3. Mai 2007 19:35

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Hi!

Zitat:

Zitat von inherited
Das ist zwar toll mit UPnP, allerdings kann das nicht jeder Router. Wenn du das Programm also weiter geben möchtest, soltest du möglichst flexibel sein. Das bist du mit meiner Lösung.
Wenn es nur für dich Privat ist, ist UPnP natürlich die "elegantere" Lösung. Das mit der Zwangstrennung brauchst du mir übrigens nicht erzählen :roll:

Ja, ok, da hast Du natürlich recht. Deine Methode ist wesentlich kompatiebler als eine Abfrage über UpNP, weil das ja nit jeder Router (Oder gar Modem???) kann. Ausserdem dürfte DynDNS so gut wie IMMER online sein, ist ja auch deren Geschäft. Und Dein Code ist genial, den kann ich sogar mühelos nach D3 portieren, oder Sockets "von Hand" programmieren. Ich hätte nicht gedacht das es so einfach zu lösen ist, Danke nochmnal für Deinen Tip.

Ich betrachte die Frage nun also als beantwortet und werd sie entsprechend markieren.

Vielen Dank an alle!

Grüsse von TOC :stupid: !

RWarnecke 3. Mai 2007 19:42

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Habt Ihr es vielleicht mal mit diesem Beitrag probiert ?

WS1976 4. Mai 2007 05:09

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Hallo,

also ich habe es hier in unserer Firma mit ca 100 DSL Routern zu tun.
Jedes Gerät, aber auch jedes, das ich bisher in den Fingern hatte kann UPNP.
Man muss UPNP natürlich freischalten.
Natürlich ist es erforderlich sich trotz des Democodes noch "ein Minimum" mit dem Thema
zu beschäftigen. So benötigt man eventuell einen PNP explorer.
Dass man ein activeX importieren muss hatte ich leider vergessen zu erwähnen.

Nebenbei: den ganzen Code hab ich mir aus der DP zusammengesucht.
Suchen macht schlau!

Viele Grüsse

jesus 14. Sep 2007 20:37

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Zitat:

Ist abgeleitet von der UPnP.dll (%Systemroot%\system32\) und kann über "Komponente importieren..." (D2005; D3 bzw. D7 k.A. Sad ).
Unter Delphi 2005 Personal geht das leider nicht. Hat denn jemand die UPNPLib_TLB.pas und würde sie hier posten ? Alternativ per PN ?

Grüße jesus

RWarnecke 14. Sep 2007 20:47

Re: Öffentliche IP der Fritz-Box in Delphi ermitteln?
 
Mit diesem Link bekommt man seine Internet-IP Adresse als reinen Text. Das geht ganz einfach mit :
Delphi-Quellcode:
Label1.Caption := IdHTTP.Get('http://ip.smartcoder.net/txt/');


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:40 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