![]() |
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: |
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 |
Re: IP Watcher
Und was, wenn mehrere externe IPs existieren?
|
Re: IP Watcher
Wie ermittelst du denn die IP wenn man fragen darf?
|
Re: IP Watcher
1. Ne ich find Tastatursteuerung viel besser und schneller
2. Keine Ahnung :mrgreen: 3. TWebBrowser |
Re: IP Watcher
@Catbytes: Was meinst denn du damit jeder Internet benutzer bekommt doch nur eine IP des ISP zugewiesen oder irre ich mich?
|
Re: IP Watcher
Da gäbe es auch IPGet als Konsolenprogramm:
![]() Zitat:
|
Re: IP Watcher
Hey cooles Prog ! ;-)
Freu mich schon auf die Zusammenarbeit mit dir an unserem zukünftigen neuen gemeinsamen Prog ;-) |
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.
|
Re: IP Watcher
Zitat:
|
Re: IP Watcher
aber die weiss man dann ja auch.....
|
Re: IP Watcher
@Pierre : Aber man kann sie dann nicht mal schnell kopieren ...
|
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] |
Re: IP Watcher
Zitat:
|
Re: IP Watcher
Welche Shortcuts würdet ihr denn nehmen ?
|
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 |
Re: IP Watcher
Zitat:
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 ;) |
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:
Zur Anzeige eignet sich am besten ne List / Combobox
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; |
Re: IP Watcher
Super. Nur dass es mit Router nicht funktioniert :?
Ich bekomme nur 192.168.0.2 angezeigt. Mehr nicht. |
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:
Einfach auslesen und fertig.
<?
print getenv("REMOTE_ADDR"); ?> |
Re: IP Watcher
Jo aber ich habs noch in einem Textfeld stehen.
|
Re: IP Watcher
Zitat:
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: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Das Ergebnis sieht ungefähr so aus:
Code:
Jetzt muss man nur mit etwas Stringverarbeitung die IP-Adresse herausziehen.
<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> 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'); |
Re: IP Watcher
@shmia: Nichts anderes mache ich auch, nur dass ich meine eigene PHP Seite benutze, weil ich da nichts mehr rauskopieren muss. ;)
|
Re: IP Watcher
Zitat:
dann nehmen alle nur noch diese und du bekommt mehr Traffic. :mrgreen: |
Re: IP Watcher
myip.php Nur hatte mein Webhoster gestern Nachmittag einen Fetsplattencrash und seit dem sind sie dabei das wieder hinzukriegen:
Zitat:
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)); |
Re: IP Watcher
Luckie du machst es dir wie immer unnötig schwer :mrgreen:
Delphi-Quellcode:
Fertig :)txtIP.Text := WB.OleObject.Document.Forms.Item(0).Elements.Item(0).Value; 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] |
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