uses
Winapi.WinInet;
function GetUrlContent(
const Url:
string):
string;
var
NetHandle: HINTERNET;
UrlHandle: HINTERNET;
Buffer:
array[0..1024]
of Char;
BytesRead: dWord;
begin
Result := '
';
NetHandle := InternetOpen('
Delphi 5.x', INTERNET_OPEN_TYPE_PRECONFIG,
nil,
nil, 0);
if Assigned(NetHandle)
then
begin
UrlHandle := InternetOpenUrl(NetHandle, PChar(
Url),
nil, 0, INTERNET_FLAG_RELOAD, 0);
if Assigned(UrlHandle)
then { UrlHandle valid? Proceed with download }
begin
FillChar(Buffer, SizeOf(Buffer), 0);
repeat
Result := Result + Buffer;
FillChar(Buffer, SizeOf(Buffer), 0);
InternetReadFile(UrlHandle, @Buffer, SizeOf(Buffer), BytesRead);
until BytesRead = 0;
InternetCloseHandle(UrlHandle);
end
else
{ UrlHandle is not valid. Raise an exception. }
raise Exception.CreateFmt('
Cannot open URL %s', [
Url]);
InternetCloseHandle(NetHandle);
end
else
{ NetHandle is not valid. Raise an exception }
raise Exception.Create('
Unable to initialize Wininet');
end;
procedure TForm3.btnGetHostNameClick(Sender: TObject);
var
ThisLines:
string;
begin
ThisLines := GetUrlContent('
http://ip-api.com/line/' + edtIpAddress.Text);
CodeSite.Send('
TForm3.btnGetHostNameClick: ThisLines', ThisLines);
end;