Получать информацию по IP мы будем с этого сайта.
function getCountryByIp($ipAddress)
{
$ipDetail=array();
$f = file_get_contents("http://api.hostip.info/?ip=".$ipAddress);
//Получаем название города
preg_match("@<Hostip>(\s)*<gml:name>(.*?)</gml:name>@si", $f, $city);
$ipDetail['city'] = $city[2];
//Получаем название страны
preg_match("@<countryName>(.*?)</countryName>@si", $f, $country);
$ipDetail['country'] = $country[1];
//Получаем код страны
preg_match("@<countryAbbrev>(.*?)</countryAbbrev>@si", $f, $countryCode);
$ipDetail['countryCode'] = $countryCode[1];
return $ipDetail;
}
Я думаю код в объяснениях не нуждается. Функция будет возвращать такой массив:
Array ( [city] => cityName [country] => countryName [country_code] => Code )
Теперь посмотрим работу функции getCountryByIp() в деле.
$ipDetail = getCountryByIp('195.114.140.105');
echo "Страна: ".$ipDetail['country']."<br />";
echo "Город: ".$ipDetail['city']."<br />";
echo "Код страны: ".$ipDetail['countryCode']."<br />";
По использованному выше будет следующая информация:
Страна: FRANCE
Город: Nice
Код страны: FR
- 10 регулярных выражений для web-разработчиков
- 3 скрипта созданные от скуки
- Регер аккаунтов 100zakladok.ru
- Создаем индикатор сложности пароля
- Yii, Модуль SRBAC часть 2. Пишем регистрацию.
Теги: PHP, Полезные скрипты

Супер! На редкость понятная статья. За 2 минуты настроил у себя на сервере. Респект автору. Всё понятно и чётко
Reply
А вот с российскими IP проблема на этом сервисе – не определяют. «… actually we haven’t a clue.»
Reply
У меня вот что определяет: 66.249.66.233 – (Private A * не определ * XX *
, т.е. ничего. И так по всем ip
, google и yandex не исключение. Что не так…
Reply
Челябинск UTEL к сожалению не определил
Reply