これは私が使用したコードです
$gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);
$buffer= geoip_country_code_by_addr($gi, $ip);
geoip_close($gi);
return $buffer;
IPv4 用。
IPv6 と IP4 の両方をサポートするには、コードをどのように変更すればよいですか?
これを機能させるには、MaxMind から IPv6 データベースをダウンロードする必要があります。これは次の場所にあります。
http://dev.maxmind.com/geoip/legacy/geolite/
geoip_open で IPv6 ファイルを指定すると、IPv6 アドレスを検索できるようになります。
例えば:
$database = (strpos($ip, ":") === false) ? "GeoIP.dat" : "GeoLiteCityv6.dat";
$gi = geoip_open($database, GEOIP_STANDARD);
残りは以前と同じになります。
とはいえ、呼び出しごとにデータベースを開いたり閉じたりしないように、リファクタリングを検討することをお勧めします。