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

Добрый день! Подскажите пожалуйста, есть айпи, например $ip = '85.114.175.250';
Как на PHP сделать GET запрос ipgeobase.ru:7020/geo?ip=85.114.175.250 выпарсить оттуда city и region и поместить их в отдельные переменные?
  • Вопрос задан
  • 608 просмотров
Решения вопроса 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
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы