Вы можете использовать мой сервис, http://ipinfo.io, для этого. API возвращает целую кучу разных деталей об IP-адресе:
$ curl ipinfo.io/8.8.8.8
{
"ip": "8.8.8.8",
"hostname": "google-public-dns-a.google.com",
"loc": "37.385999999999996,-122.0838",
"org": "AS15169 Google Inc.",
"city": "Mountain View",
"region": "CA",
"country": "US",
"phone": 650
}
Если вы только после кода страны, вам просто нужно добавить / страну к URL:
$ curl ipinfo.io/8.8.8.8/country
US
Вот общая функция PHP, которую вы можете использовать:
function ip_details($ip) {
$json = file_get_contents("http://ipinfo.io/{$ip}");
$details = json_decode($json);
return $details;
}
$details = ip_details("8.8.8.8");
echo $details->city; // => Mountain View
echo $details->country; // => US
echo $details->org; // => AS15169 Google Inc.
echo $details->hostname; // => google-public-dns-a.google.com
Я использовал IP 8.8.8.8 в этих примерах, но если вы хотите получить подробную информацию об IP пользователя, просто введите $_SERVER['REMOTE_ADDR']
. Более подробная информация доступна на http://ipinfo.io/developers