![]() |
GeoIP nur Error
Hi zusammen, und zwar möchte ich in meinem Progamm das Land einer IP anzeigen lassen.
Sprich ich gebe in meinem Programm eine IP an und über GeoIP möchte ich mir das Land ausgeben lassen. Da ich im mom leider nicht so viel geld hab habe ich die Free Version genommen. Doch leider bekomme ich immer nur "Error" ausgegeben. Folgende Funcion habe ich benutzt:
Delphi-Quellcode:
Daraus schließe ich jetzt einfach mal, das die Datenbank von GeoIP, welche ich mir geladen hab die IP Range nicht kennt, also nicht weiß, aus welchem Land die IP kommt.
function TForm1.LookupCountry(IP : String): string;
var GeoIP: TGeoIP; GeoIPCountry: TGeoIPCountry; begin GeoIP := TGeoIP.Create('GeoIP.dat'); try if GeoIP.GetCountry(IP, GeoIPCountry) = GEOIP_SUCCESS then begin Result := GeoIPCountry.CountryName; end else begin Result := 'Error'; end; finally GeoIP.Free; end; end; Könnt ihr mir vielleicht weiter helfen? Habe es mit meiner IP versucht, welche ja eigendlich in jeder IP Range drin stehen müsste. |
AW: GeoIP nur Error
Wird im Konstruktor
Delphi-Quellcode:
der Pfad zur Datenbankdatei angegeben? Wenn ja, wo soll er deiner Meinung nach die Datei finden?
GeoIP := TGeoIP.Create('GeoIP.dat');
|
AW: GeoIP nur Error
Ja so denke ich mir das. Die funktion stammt von GeoIP selbst.
Stand unter "Samples". Er würde ja demnach die Datei da suchen, wo auch die kompilierte .exe von meinem Programm liegt. |
AW: GeoIP nur Error
und liegt da auch die Datenbankdatei?
Bernhard EDIT: Benutze doch mal deine eigene öffentliche IP, da müsste was kommen oder schau die IP von Google nach. Da sollte auch was kommen. |
AW: GeoIP nur Error
Zitat:
Siehe auch hier: ![]() |
AW: GeoIP nur Error
oder mal mit FileExists prüffen, ob die Datei existiert.
Bernhard |
AW: GeoIP nur Error
Also habs jetzt so gemacht wie ihr gesagt habt.
Also der Pfad stimmt, denn wenn ich die Datei umbenenne bekomme ich einen Fehler, das die Datei nicht gefunden wurde. Habs mal mit meiner IP probiert, bekomme aber immer "Error" ausgegeben. |
AW: GeoIP nur Error
Guten Morgen,
wie wäre es, wenn Du einmal den Rückgabewert von GetCountry auswertest?
Delphi-Quellcode:
Von welchem Typ returnCode sein muss can ich Dir nicht sagen
function TForm1.LookupCountry(IP : String): string;
var GeoIP: TGeoIP; GeoIPCountry: TGeoIPCountry; begin GeoIP := TGeoIP.Create('GeoIP.dat'); try returnCode := GeoIP.GetCountry(IP, GeoIPCountry); if returnCode = GEOIP_SUCCESS then begin Result := GeoIPCountry.CountryName; end else begin Result := 'Error ' + IntToStr(returnCode); end; finally GeoIP.Free; end; end; sollte aber in der Doku zu finden sein. Ich nehme an es ist Byte oder Integer. Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 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