
Básicamente el código es el siguiente:
Descarga proyecto completo + compilado: [Enlace externo eliminado para invitados]
Pass: udtools.net
procedure TForm1.Button1Click(Sender: TObject);
var
ip: string;
bandera: string;
png: tpngobject;
i: integer;
Nodo: IXMLNode;
begin
ip:= edit1.Text;
XMLDocument1.FileName:= 'http://freegeoip.net/xml/' + IP;
XMLDocument1.Active:= True;
Nodo:= XMLDocument1.DocumentElement;
bandera:= 'http://flagpedia.net/data/flags/small/';
bandera:= bandera + ansilowercase(Nodo.ChildNodes['CountryCode'].Text) + '.png';
urldownloadtofile(nil, pchar(bandera), 'flag.png', 0, nil);
png:= tpngobject.Create;
png.LoadFromFile('flag.png');
image1.Picture.Assign(png);
with listview1.Items do
begin
for i:= 0 to count -1 do
item[i].SubItems.clear;
Item[0].SubItems.Add(Nodo.ChildNodes['Ip'].Text);
Item[1].SubItems.Add(Nodo.ChildNodes['CountryCode'].Text);
Item[2].SubItems.Add(Nodo.ChildNodes['CountryName'].Text);
Item[3].SubItems.Add(Nodo.ChildNodes['RegionCode'].Text);
Item[4].SubItems.Add(Nodo.ChildNodes['RegionName'].Text);
Item[5].SubItems.Add(Nodo.ChildNodes['City'].Text);
Item[6].SubItems.Add(Nodo.ChildNodes['ZipCode'].Text);
Item[7].SubItems.Add(Nodo.ChildNodes['Latitude'].Text);
Item[8].SubItems.Add(Nodo.ChildNodes['Longitude'].Text);
Item[9].SubItems.Add(Nodo.ChildNodes['MetroCode'].Text);
Item[10].SubItems.Add(Nodo.ChildNodes['AreaCode'].Text);
end;
end;
Pero queda de lujo así, gracias Dra!