Как получить местоположение зная IP через GET?

Добрый день! Подскажите пожалуйста, есть айпи, например $ip = '85.114.175.250';
Как на PHP сделать GET запрос ipgeobase.ru:7020/geo?ip=85.114.175.250 выпарсить оттуда city и region и поместить их в отдельные переменные?
  • Вопрос задан
  • 601 просмотр
Решения вопроса 1
DevMan
@DevMan
в самом примитивном виде:
<?php

$data = file_get_contents('http://ipgeobase.ru:7020/geo?ip=85.114.175.250');
$xml = simplexml_load_string($data);
$city = $xml->ip->city;
$region = $xml->ip->region;
echo $city, PHP_EOL, $region;

но проще/лучше скачать их базу и использовать ее локально.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@ckr
shell_exec('geoiplookup 85.114.175.250');

только надо чтобы на сервере был установлен geoip

php.net/manual/en/book.geoip.php

Опять же, функции geoip-* работают со скачанной локально базой.
Ответ написан
AAChibilyaev
@AAChibilyaev
Разработка
shell_exec - очень плохое и кривое решение, т.к. открывает потенциальную дыру на сервер.
Данная задача решается очень просто:
1. Через PHP CURL оправляете GET и получаете ответ
2. Парсите XML через PHP SimpleXML
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
Бюро Цифровых Технологий Санкт-Петербург
от 120 000 до 180 000 ₽
03 мая 2024, в 21:00
5000 руб./за проект
03 мая 2024, в 20:41
15000 руб./за проект
03 мая 2024, в 20:03
5000 руб./за проект