Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   IP Watcher (https://www.delphipraxis.net/46404-ip-watcher.html)

Rastaman 24. Mai 2005 14:26


IP Watcher
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo. Nach langer Zeit mal wieder n klitze kleines Prog :wink:
Hiermit kann man seine externe IP Adresse anzeigen lassen.
Ich hab es gemacht weil es nervt immer erst "www.wieistmeineip.de" oder meine routerseite aufzurufen.

Um die IP zu updaten auf "update" klicken :shock:

Das Prog lässt sich per "STRG + Space" verstecken und anzeigen.
Mit "STRG + C" zentrieren falls es mal aus dem Bildschirmrand kommen sollte.

Tjaaa das wars eigentlich schon :stupid:

Win32.API 24. Mai 2005 14:32

Re: IP Watcher
 
Hi,
Ziemlich nützliche programm vor allem ,wenn man einen router hat. :thumb:
Nur das design gefällt mir noch nicht so gut.
Verlagere es doch in die TNA.

Win32.API

Catbytes 24. Mai 2005 14:58

Re: IP Watcher
 
Und was, wenn mehrere externe IPs existieren?

LoL 24. Mai 2005 15:01

Re: IP Watcher
 
Wie ermittelst du denn die IP wenn man fragen darf?

Rastaman 24. Mai 2005 15:06

Re: IP Watcher
 
1. Ne ich find Tastatursteuerung viel besser und schneller
2. Keine Ahnung :mrgreen:
3. TWebBrowser

LoL 24. Mai 2005 15:10

Re: IP Watcher
 
@Catbytes: Was meinst denn du damit jeder Internet benutzer bekommt doch nur eine IP des ISP zugewiesen oder irre ich mich?

shmia 24. Mai 2005 15:47

Re: IP Watcher
 
Da gäbe es auch IPGet als Konsolenprogramm:
http://cc.borland.com/codecentral/cc...sting?id=21271
Zitat:

Display current IP address, even from behind a firewall. Uses WinInet API. Command-line utility. Includes source.
Das Tool benötigt wenig Resourcen und man kann abschauen, wie man mehrere Web-Server nach der eigenen IP abfragen kann (falls der Lieblingsserver mal down sein sollte).

Assun 24. Mai 2005 15:58

Re: IP Watcher
 
Hey cooles Prog ! ;-)

Freu mich schon auf die Zusammenarbeit mit dir an unserem zukünftigen neuen gemeinsamen Prog ;-)

PierreB 24. Mai 2005 16:46

Re: IP Watcher
 
Ich würde es auch besser finden wenn das Programm im TNA sitzt und wenn man die Maus übers Symbol bewegt wird die IP angezeigt.

Thorben77 24. Mai 2005 16:57

Re: IP Watcher
 
Zitat:

Zitat von LoL
@Catbytes: Was meinst denn du damit jeder Internet benutzer bekommt doch nur eine IP des ISP zugewiesen oder irre ich mich?

Afaik kann man sich auch mehrere (feste) IPs vom ISP zuweisen lassen.

DGL-luke 24. Mai 2005 17:01

Re: IP Watcher
 
aber die weiss man dann ja auch.....

Rastaman 24. Mai 2005 17:34

Re: IP Watcher
 
@Pierre : Aber man kann sie dann nicht mal schnell kopieren ...

Waldteufel 24. Mai 2005 17:39

Re: IP Watcher
 
Hi.

Strg+C ist ein (mittlerweile Standard-)Shortcut für "Kopieren". Den sollte man nicht für "Zentrieren" missbrauchen...

[edit2] *schnipp-schnapp* @phXql: Ich gebe mich geschlagen [/edit2]

[edit] Ansonsten :thumb: [/edit]

phXql 24. Mai 2005 17:41

Re: IP Watcher
 
Zitat:

Zitat von Waldteufel
Hi.

Strg+C ist ein (mittlerweile Standard-)Shortcut für "Kopieren". Den sollte man nicht für "Zentrieren" missbrauchen...

Verbesserungsvorschlag: Überprüfe die IP-Adresse doch 1x pro Minute. Damit entfällt der (irgendwann nur noch lästige) Klick auf "Update" ;-)

[edit] Ansonsten :thumb: [/edit]

nenn mir mal einen provider, wo man jede minute ne neue IP kriegt. Das mit ner minute is doch hier vollkommen überflüssig...

Rastaman 24. Mai 2005 18:17

Re: IP Watcher
 
Welche Shortcuts würdet ihr denn nehmen ?

Rastaman 24. Mai 2005 19:18

Re: IP Watcher
 
Oha jo!!
Mich schon gewundert warum meine zwischenablage spinnt...
Wegen STRG + C.
Wurde geändert in STRG + M (wie MITTE) :mrgreen:

So long

Catbytes 25. Mai 2005 10:14

Re: IP Watcher
 
Zitat:

Zitat von LoL
@Catbytes: Was meinst denn du damit jeder Internet benutzer bekommt doch nur eine IP des ISP zugewiesen oder irre ich mich?

Hi,

konkretes Beispiel - steht direkt neben mir die Kiste ;-)

3 Netzwerkkarten mit insgesamt 5 festen IPs + ISDN-Karte, wo bei Bedarf Verbindung aufgebaut wird.

Was nicht schlecht wäre, um auch DynDNS zu unterstützen: Alle Minute die IPs aktualisieren und in Text-Datei schreiben oder gleich auf 'nen Server hochladen - dann kann man daheim seinen eigenen, kleinen WebServer fahren und ist, wenn die Zwangstrennung kommt, maximal 1 Minute Offline...

Edit: Natürlich sollte man seine festen IPs kennen. Doch bei mehr als 40 Stück verteilt auf knapp 10 Kisten, wird es schwierig ;)

Interceptor 25. Mai 2005 10:43

Re: IP Watcher
 
Vergiss den TWebBrowser um die IP zu ermitteln

Hier ist ein schönes Stückchen Code um sämtliche IP's (Netzwerk & Inet) zu ermitteln. Nicht vergessen die unit Winsock in den uses mit aufzunehmen.

Delphi-Quellcode:
uses
  Winsock;

{...}

function GetIPs: Tstrings;
type
  TaPInAddr = array[0..10] of PInAddr;
  PaPInAddr = ^TaPInAddr;
var
  phe: PHostEnt;
  pptr: PaPInAddr;
  Buffer: array[0..63] of Char;
  I: Integer;
  GInitData: TWSAData;
begin
  WSAStartup($101, GInitData);
  Result := TstringList.Create;
  Result.Clear;
  GetHostName(Buffer, SizeOf(Buffer));
  phe := GetHostByName(buffer);
  if phe = nil then Exit;
  pPtr := PaPInAddr(phe^.h_addr_list);
  I   := 0;
  while pPtr^[I] <> nil do
  begin
    Result.Add(inet_ntoa(pptr^[I]^));
    Inc(I);
  end;
  WSACleanup;
end;
Zur Anzeige eignet sich am besten ne List / Combobox

Rastaman 25. Mai 2005 11:43

Re: IP Watcher
 
Super. Nur dass es mit Router nicht funktioniert :?
Ich bekomme nur 192.168.0.2 angezeigt. Mehr nicht.

Luckie 25. Mai 2005 11:52

Re: IP Watcher
 
Wie ermittelst du denn die IP mit der TWebBrowser Komponente? Ich ahbe auf meiner HP einfach eine Seite liegen mit diesem Inhalt:
Code:
<?
print getenv("REMOTE_ADDR");
?>
Einfach auslesen und fertig.

Rastaman 25. Mai 2005 11:55

Re: IP Watcher
 
Jo aber ich habs noch in einem Textfeld stehen.

shmia 25. Mai 2005 14:17

Re: IP Watcher
 
Zitat:

Zitat von Interceptor
Vergiss den TWebBrowser um die IP zu ermitteln

Hier ist ein schönes Stückchen Code um sämtliche IP's (Netzwerk & Inet) zu ermitteln. Nicht vergessen die unit Winsock in den uses mit aufzunehmen.

Ich wette, keiner von Euch hat meinen Betrag über das Programm IPGet wirklich richtig gelesen.
Hier nochmals das Grundprinzip, wie man die eigene IP, mit der man im Internet arbeitet, herausfindet.
Und zwar unabhängig davon, ob ein Router oder ein Proxy-Server dazwischen ist:

Man stellt eine HTTP-Anfrage an eine der folgenden URLs und wertet das Ergebnis aus:
http://checkip.dyndns.org
http://checkip.dyndns.org:8245
http://ipdetect.dnspark.com
http://ip.ChangeIP.com/ip.asp
http://www.dnsart.com/myip.php
http://www.dnsart.com:7777/myip.php
http://dynupdate.no-ip.com/ip.php
http://update.dynu.com/basic/ipcheck.asp
http://dynamic.zoneedit.com/checkip.html
Das Ergebnis sieht ungefähr so aus:
Code:
<html>
<head>
<meta http-equiv="Expires" content="Tues, 04 Dec 1996 21:00:00 GMT">
<meta http-equiv="pragma" content="no cache">

<title>IPDetect.DNSPark.com</title>
</head>
<body>

Current Address: 211.186.108.69
</body>
</html>
Jetzt muss man nur mit etwas Stringverarbeitung die IP-Adresse herausziehen.
Dazu braucht man keinen TWebBrowser (zu viel Overhead) und WinSock wäre zu systemnah.
Ein Web-Seite lässt sich mit ganz wenig Aufwand downloaden:
Delphi-Quellcode:
uses ...,WinINet;
function DownLoadInternetFile(const Source, Dest : String): Boolean;
begin
   Result := URLDownloadToFile(nil,PChar(Source),PChar(Dest),0,nil) = 0
end;
...
DownloadInternetFile('http://ipdetect.dnspark.com', 'C:\IP.txt');

Luckie 25. Mai 2005 14:20

Re: IP Watcher
 
@shmia: Nichts anderes mache ich auch, nur dass ich meine eigene PHP Seite benutze, weil ich da nichts mehr rauskopieren muss. ;)

shmia 25. Mai 2005 14:42

Re: IP Watcher
 
Zitat:

Zitat von Luckie
@shmia: Nichts anderes mache ich auch, nur dass ich meine eigene PHP Seite benutze, weil ich da nichts mehr rauskopieren muss. ;)

Dann verrate hier doch die URL deiner PHP Seite,
dann nehmen alle nur noch diese und du bekommt mehr Traffic. :mrgreen:

Luckie 25. Mai 2005 15:00

Re: IP Watcher
 
myip.php Nur hatte mein Webhoster gestern Nachmittag einen Fetsplattencrash und seit dem sind sie dabei das wieder hinzukriegen:
Zitat:

Festplattenschaden

Es erfolgt derzeit eine Wiederherstellung der Webdaten, die bis voraussichtlich 16:00Uhr andauern wird. Hierdurch steht bis zu dieser Uhrzeit kein FTP- sowie HTTP-Dienst zur Verfügung. Der E-Mail-Dienst (POP3/SMTP) wird über einen Backupserver zur Verfügung gestellt, so dass Sie alle E-Mails erhalten und senden können. Wir danken für Ihr Verständnis.
Der Code:
Delphi-Quellcode:
function GetTempDir: string;
var
  Buffer: array[0..MAX_PATH - 1] of Char;
  Len: DWORD;
begin
  result := '';
  Len := GetTempPath(sizeof(Buffer), Buffer);
  if Len > 0 then
    SetString(result, Buffer, Len);
end;

function GetTempName(const aDir: string): string;
var
  Buffer: array[0..MAX_PATH - 1] of Char;
  uUnique: DWORD;
begin
  result := '';
  if aDir <> '' then
  begin
    uUnique := GetTempFileName(@aDir[1], '$IP', 0, Buffer);
    if uUnique <> 0 then
      result := string(Buffer);
  end;
end;

procedure DownloadFile(URL: string; Filename: string);
begin
  URLDownloadToFile(nil, PChar(Url), PChar(Filename), 0, nil);
end;
Delphi-Quellcode:
TempFilename := GetTempName(GetTempDir);
  DownloadFile(URL, TempFilename);
  AssignFile(F, TempFilename);
{$I-}
  Reset(F);
{$I+}
  s := '';
  if IOResult = 0 then
  begin
    while not EOF(F) do
      Readln(F, s);
  end;
  CloseFile(F);

  DeleteFile(pointer(TempFilename));

Rastaman 25. Mai 2005 17:31

Re: IP Watcher
 
Luckie du machst es dir wie immer unnötig schwer :mrgreen:

Delphi-Quellcode:

    txtIP.Text := WB.OleObject.Document.Forms.Item(0).Elements.Item(0).Value;
Fertig :)
Die paar kb für den Webbrowser bringen dich schon nicht um :-D

[edit1] Soweit ich weiß brauch man URLMon und nicht WinInet um URLDownloadToFile zu benutzen [/edit1]

[edit2] Ok überredet URLMon is viel kleiner :wall: [/edit2]

Luckie 25. Mai 2005 17:39

Re: IP Watcher
 
Nein das ist nicht unnötig schwer, da nicht jeder TWebBrowser zur Verfügung hat. Dann barucht man mit meiner Methode auch nicht das ActiveX zu importieren. Ist somit mit jeden Delphi kompilierbar.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz