Верх страницы
Обложка к записи Информация об IP адресе
Время для прочтения: 1 мин. 6 сек.

Информация об IP адресе

Geolocation — определение местоположения по IP адресу или доменному имени.

Используя бесплатный Geolocation XML API от сайта ipinfodb.com, можно получить достаточную информацию по интересующему нас IP адресу.

Чтобы скрипт заработал, достаточно передать ему методом GET параметр query с IP адресом или доменным именем, на выходе получим результат:

header('Content-Type: text/html; charset=UTF-8');
 
// Вытащить GET переменную
$query = (isset($_GET['query']) && !empty($_GET['query'])) ? $_GET['query'] : $_SERVER['REMOTE_ADDR'];
 
// Получить из запроса IP адрес
$ip = gethostbyname($query);
 
// Забрать XML
$xml = new SimpleXMLElement('http://ipinfodb.com/ip_query.php?ip='.$ip.'&timezone=true', NULL, TRUE);
 
// Если нет ошибок
if ($xml->Status == 'OK') {
    echo '<p>';
    echo 'Query: '.$query.'<br />';
    echo 'IP: '.$xml->Ip.'<br />';
    echo 'Код страны: '.$xml->CountryCode.' <img src="http://ipinfodb.com/img/flags/'.strtolower($xml->CountryCode).'.gif" width="18" height="12"><br />';
    echo 'Название страны: '.$xml->CountryName.'<br />';
    echo 'Код региона: '.$xml->RegionCode.'<br />';
    echo 'Название региона: '.$xml->RegionName.'<br />';
    echo 'Город: '.$xml->City.'<br />';
    echo 'Широта: '.$xml->Latitude.'<br />';
    echo 'Долгота: '.$xml->Longitude.'<br />';
    echo 'Часовой пояс: '.$xml->TimezoneName.'<br />';
    echo 'Смещение по Гринвичу: '.$xml->Gmtoffset.'<br />';
    echo 'Летнее время: '.$xml->Isdst.'<br />';
    echo '</p>';
 
} else {
    echo 'Error: '.$xml->Status;
}

В связи с многочисленными запросами к данному сервису, администраторы сервера сменили адрес и ввели ограничение — доступ по API-key, который можно получить здесь

Обновленный вариант скрипта:

header('Content-Type: text/html; charset=UTF-8');
 
$query = (isset($_GET['query']) && !empty($_GET['query'])) ? $_GET['query'] : $_SERVER['REMOTE_ADDR'];
$ip = gethostbyname($query);
$key = 'Ваш API-key';
$url = sprintf(
               'http://api.ipinfodb.com/v2/ip_query.php?ip=%s&timezone=true&key=%s',
               $ip,
               $key
);
 
$xml = new SimpleXMLElement($url, NULL, TRUE);
 
if ($xml->Status == 'OK') {
    echo '<p>';
    echo 'Query: '.$query.'<br />';
    echo 'IP: '.$xml->Ip.'<br />';
    echo 'Код страны: '.$xml->CountryCode.' <img src="http://ipinfodb.com/img/flags/'.strtolower($xml->CountryCode).'.gif" width="18" height="12"><br />';
    echo 'Название страны: '.$xml->CountryName.'<br />';
    echo 'Код региона: '.$xml->RegionCode.'<br />';
    echo 'Название региона: '.$xml->RegionName.'<br />';
    echo 'Город: '.$xml->City.'<br />';
    echo 'Широта: '.$xml->Latitude.'<br />';
    echo 'Долгота: '.$xml->Longitude.'<br />';
    echo 'Часовой пояс: '.$xml->TimezoneName.'<br />';
    echo 'Смещение по Гринвичу: '.$xml->Gmtoffset.'<br />';
    echo 'Летнее время: '.$xml->Isdst.'<br />';
    echo '</p>';
 
} else {
    echo 'Error: '.$xml->Status;
}

Ссылки

ВКонтакте
Одноклассники
Linkedin
Telegram
WhatsApp

Автор: Кобзарёв Михаил

Суровый русский тимлид. Жил в Магадане, в офисе московских веб студий и в Тульской деревне. Виртуозно знает WordPress, PHP, ООП, Vue.js и вот это вот все.

Делает крутые высоконагруженные сайты, поэтому уже почти захватил весь рынок WordPress разработки в России. Не дает никому делать сайты без спроса.

Ведет блог о разработке, дайджест в телеграмме и в ВК.

Комментарии
Подписаться
Уведомить о
4 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Предыдущая запись
Следующая запись
4
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x