Читать книгу Programmieren mit PHP - Andreas Hitzig - Страница 18
Kostenlos kann auch IPv6
ОглавлениеDie kostenlose Variante kann jedoch nicht nur mit IPv4 umgehen, sondern auch mit IPv6. Das neue Format ist immer mehr im Vormarsch, deswegen ist es nur konsequent, diese Form der IP-Adresse auch entsprechend analysieren zu können. Wenn Sie mehr zum Aufbau der neuen IPv6-Adresse erfahren möchten, finden Sie einen guten Einstieg beispielsweise über den Wikipedia-Artikel (http://de.wikipedia.org/wiki/IPv6).
Das Beispiel in Listing 2 ermittelt aus verschiedenen IPv6-Adressen, aber auch aus einem URL, der auf einer IPv6-Adresse basiert, das passende Land. Für die Umsetzung benötigen Sie eine neue Umsetzungsdatei - GeoIPv6.dat. Diese bekommen Sie nicht direkt über den Link auf der Homepage, aber direkt aus dem Download-Bereich von MaxMind (http://geolite.maxmind.com/download/geoip/database). In diesem Verzeichnis finden Sie die Datei GeoIPv6.dat.gz, die Sie nur noch entpacken müssen.
LISTING 2: IPV6-ADRESSEN
<?php
include("geoip.inc");
$gi = geoip_open("GeoIPv6.dat",GEOIP_STANDARD);
echo geoip_country_code_by_addr_v6($gi, "::24.24.24.24") . "\t" .
geoip_country_name_by_addr_v6($gi, "::24.24.24.24") . "\n" ."<br>";
echo geoip_Country_code_by_addr_v6($gi, "2001:67c:26c::") . "\t" .
geoip_Country_name_by_addr_v6($gi, "2001:67c:26c::") . "\n" .
"<br>";
echo geoip_country_code_by_addr_v6($gi,
"2001:67c:3a0:ffff:ffff:ffff:ffff:ffff") . "\t" .
geoip_country_name_by_addr_v6($gi,
"2001:67c:3a0:ffff:ffff:ffff:ffff:ffff") . "\n" . "<br>";
echo geoip_Country_code_by_name_v6($gi, "ipv6.google.com") . "\t" .
geoip_Country_name_by_name_v6($gi, "ipv6.google.com") . "\n" .
"<br>";
geoip_close($gi);
?>
Die Ermittlung des zugehörigen Landes der IP-Adresse funktioniert analog der IPv4-Adresse, allerdings über die Funktion geoip_country_name_by_addr_v6(). Gleiches gilt für die Ermittlung des Ländercodes - für diesen lautet die Funktion entsprechend geoip_country_code_by_addr_v6(). Als Wert können Sie nicht nur eine IPv6-Adresse übergeben, sondern auch einen URL, beispielsweise ipv6.google.com.