Danke Xion!
falls jemand das mal benötigt hier die Infos wie man sowas in ein eigenes programm einbaut
1.) Download der "GeoLite Country" database von
geolite.maxmind.com/...Country/GeoIP.dat.gz
Die *.dat Datei extrahieren und in ein Verzeichnis speichern auf das die eigene Applikation zugreifen kann
(zB das HomeDir der eigenen Applikation, dort könnten auch Problemlos versions-Updates der GeoIP.dat eingespielt werden ohne Windows UAC)
2.) Vorbereitungen der eigenen Applikation auf
2a)
uses GeoIP;
2b)
Var
GeoIP: TGeoIP;
GeoIPCountry: TGeoIPCountry;
2e)
Function TForm1.GetIPCountryStr(IP:String):String;
2c,d)
"FormCreate" Ereignis -> GeoIP := TGeoIP.Create({MyHomeDir + }'GeoIP.dat'); //Location der Datei. Zur Sicherheit würde ich noch ein If FileExists dazupacken!
"OnDestroy" Ereignis -> GeoIP.Free;
3.) Routine zum abfrage des Landes einer gewissen IP
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| Function TForm1.GetIPCountryStr(IP:String):String; begin try if GeoIP.GetCountry(IP, GeoIPCountry) = GEOIP_SUCCESS then Result := GeoIPCountry.CountryName else Result := 'ERROR'; except Result := 'We got an exeption!'; end; end; |
4.) Leicht modifizierter Delphi-Wrapper für die GeoIP.dat siehe Dateianhang (Anpassung Unicode Strings)
Viel Spaß
Martin