Читать книгу Programmieren mit PHP - Andreas Hitzig - Страница 17

Das erste Beispiel

Оглавление

Im ersten Beispiel nutzen wir die Datei zur Ermittlung des Landes, die wir aktuell von der MaxMind-Website heruntergeladen haben. Der erste include-Befehl ist lediglich der direkten Integration der PHP-Bibliothek geschuldet. Haben Sie sich für eine alternative Installationsmethode entschieden, sieht dieser Teil entsprechend anders aus.

Im zweiten Schritt kommt das API zum ersten Mal zum Einsatz. Sie öffnen mit geoip_open() die GeoIP-Datei, in welcher die IP-Adresse auf das entsprechende Land gemappt wird. Die IP-Adresse wird als fester Wert in der Variablen ip mitgegeben. Die Abfrage des Ländercodes und des Landes im Klartext erfolgt anschließend mit Hilfe der beiden Funktionen geoip_country_code_by_addr() und geoip_country_name_by_addr(). Als Parameter wird jeweils die Variable gi übergeben, welche die Datenbank repräsentiert, sowie die IP-Adresse, die analysiert werden soll. Zum Schluss wird die Verbindung zur Datei geo-ip.dat wieder abgebaut. Das geschieht mit Hilfe des Befehls geoip_close():

<?

include("geoip.inc");

$gi = geoip_open("GeoIP.dat",

GEOIP_STANDARD);

echo "Ermittlung von Land und Name für

die IP-Adresse <br /><br />";

$ip = "94.217.83.146";

echo "IP: ". $ip . "<br />";

echo "Ländercode: " .

geoip_Country_code_by_addr($gi, $ip) .

"<br />" .

"Name des Landes: " .

geoip_Country_name_by_addr($gi, $ip) .

"<br /><br />";

geoip_close($gi);

?>

Etwas mehr Informationen stehen Ihnen bei der Bibliothek für die Abfrage der Stadtinformationen zur Verfügung. Hierzu binden Sie die Bibliothek geoipcity.inc sowie die PHP-Datei geoip-regionvars.php ein. Beide bekommen Sie direkt aus dem Download-Bereich von MaxMind (http://geolite.maxmind.com/download/geoip/api/php). Wie auch bei der Ermittlung des Landes benötigen Sie eine Variable sowie den Befehl geoip_open() für die Verbindung mit der Datei, über welche die Umsetzung stattfindet (Listing 1).

LISTING 1: STADTINFORMATIONEN

<?


include("geoipcity.inc");

include("geoipregionvars.php");


$giCity = geoip_open("GeoLiteCity.dat",GEOIP_STANDARD);


$ip = "94.217.83.146";

$datensatz = geoip_record_by_addr($giCity, $ip);

echo "Land und Stadt auf Basis der IP-Adresse<br /><br />";

echo "IP: " . $ip . "<br /><br />";

echo "Ländercode: " . $datensatz->Country_code . "<br />" .

"Ländercode 3: " . $datensatz->Country_code . "<br />" .

"Name des Landes: " . $datensatz->Country_name . "<br />" .

"Regionalcode: " . $datensatz->region . "<br />" .

"Name der Region: " . $GEOIP_REGION_NAME

[$datensatz->Country_code][$datensatz->region] . "<br />" .

"Stadt: " . $datensatz->city . "<br />" .

"Postleitzahl: " . $datensatz->postal_code . "<br />" .

"Breitengrad: " . $datensatz->latitude . "<br />" .

"Längengrad: " . $datensatz->longitude . "<br />" .

"Code Gebiet: " . $datensatz->area_code . "<br />" ;

geoip_close($giCity);


?>

Die Funktion geoip_record_by_addr() liefert eine Klasse mit verschiedenen Informationen zurück wie dem Ländercode, dem Namen des Landes, dem Namen der Region und natürlich auch der Stadt. Eine komplette Auflistung aller Parameter, die in der Klasse enthalten sind, finden Sie in der Datei geoipcity.inc innerhalb der Klassendefinition. Zum Schluss geben Sie wie im vorherigen Beispiel den Zugriff auf die Datei wieder frei.

Programmieren mit PHP

Подняться наверх