program IPAdresse;
uses
Forms, Windows, SysUtils, Variants,
Classes, StdCtrls, IdBaseComponent,
IdComponent, IdIPWatch,
IdTCPConnection, IdTCPClient,IdIcmpClient,
IdHTTP,IdException, shellAPI, ExtCtrls,
IniFiles;
{$R *.res}
var
IdHTTP1: TIdHTTP;
Ini,configuration: TIniFile;
ende, anfang, i:integer;
ipaddr, ipseitestr:
string;
Uhrzeit, Datum:
string;
LoN, LoP:
String;
// Login Name und Login Passwort
ProgDir:
String;
// Hier wird der aktuelle Ordner des Programms beschrieben
SEInfo: TShellExecuteInfo;
// Unit shell API
WPfad:
string;
// Ordner für Webdateien: psftp.exe, skript.txt
begin
ProgDir:=GetCurrentDir();
WPfad:= ProgDir;
IdHTTP1:=TIdHTTP.Create;
// Hier wird ein Element vom Typ IdHTTP erzeugt
configuration:=TIniFile.Create(ProgDir+'
\config.ini');
LoN:=configuration.readstring('
Serverdaten','
Username','
');
LoP:=configuration.readstring('
Serverdaten','
Password','
');
Repeat
ipaddr:='
';
// Hiermit wird sichergestellt, dass ipaddr nicht vorher
// beschrieben wurden
ipseitestr:=IdHTTP1.Get('
http://www.wieistmeineip.de/');
anfang:=ansipos('
"ip">',IdHTTP1.Get('
http://www.wieistmeineip.de/'))+5;
ende:=ansipos('
</h1>',IdHTTP1.Get('
http://www.wieistmeineip.de/'))-1;
Uhrzeit:=timetostr(gettime);
//Ausgabe der Uhrzeit
Datum:=datetostr(date());
// Ausgabe des Datums
for i:=0
to (ende-anfang)
do // Schreiben der IP-Adresse
ipaddr:=ipaddr+ipseitestr[anfang+i];
// Hier wird eine INI Datei erstellt.
ini:=TIniFile.Create(ProgDir+'
\AktuelleIP.txt');
try
ini.writestring('
MessrechnerIP','
Datum',Datum);
ini.writestring('
MessrechnerIP','
Uhrzeit',Uhrzeit);
ini.writestring('
MessrechnerIP','
Adresse',ipaddr);
finally
ini.free;
// Transfer der Webdaten zum Server im Rechenzentrum
// Als erstes wird der Record SEInfo beschrieben. Dieser wird zum Schluss
// der Funktion ShellExecuteEx uebergeben.
FillChar(SEInfo, SizeOf(SEInfo), 0);
//Auffüllen von SEInfo und dessen Größe mit 0
SEInfo.cbSize:=SizeOf(TShellExecuteInfo);
with SEInfo
do
begin
fMask:=SEE_MASK_NOCLOSEPROCESS;
wnd:=Application.Handle;
lpVerb:=PChar('
open');
lpFile:=PChar(ProgDir+'
\psftp.exe');
lpParameters:=PChar('
-l '+LoN+'
-pw '+LoP+'
Servername -batch -b PutDatei.txt');
lpDirectory:=PChar(WPfad);
nShow:=SW_HIDE;
end;
//with SEInfo do
ShellExecuteEx(@SEInfo);
sleep(60000);
end;
// try-finally
else sleep(60000);
Until False;
end.
//Anfang