(PECL geoip >= 0.2.0)
geoip_country_code_by_name — Get the two letter country code
The geoip_country_code_by_name() function will return the two letter country code corresponding to a hostname or an IP address.
hostname
The hostname or IP address whose location is to be looked-up.
Returns the two letter ISO country code on success, or false
if the address cannot be found in the database.
Example #1 A geoip_country_code_by_name() example
This will print where the host example.com is located.
<?php
$country = geoip_country_code_by_name('www.example.com');
if ($country) {
echo 'This host is located in: ' . $country;
}
?>
The above example will output:
This host is located in: US
Please see » http://www.maxmind.com/en/iso3166 for a complete list of possible return values, including special codes.
PHP pecl geoip since v1.1.1 from 2016 https://pecl.php.net/package-changelog.php?package=geoip&release=1.1.1 supports 3 new functions geoip_country_code_by_name_v6(), geoip_country_code3_by_name_v6() and geoip_country_name_by_name_v6() which unfortunately are not mentioned in official PHP doc: https://www.php.net/manual/en/ref.geoip.php Functions require file GeoIPv6.dat. Note that city info for IPv6 is not supported.
$countryCode = (strpos($ip, ":") === false) ? geoip_country_code_by_name($ip) : geoip_country_code_by_name_v6($ip);
https://stackoverflow.com/questions/30113161/getting-ipv6-support-with-php5-geoip-and-maxmind-database