![]() |
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 17:30 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