Как получить название страны с IP -адреса в PHP [Duplicate
-
10-10-2019 - |
Вопрос
Этот вопрос уже имеет ответ здесь:
Я хочу найти страну, город, широту и долготу от IP -адреса с помощью PHP. Я использую этот URL -адрес, и он возвращает данные в формате XML.
http://www.ipgp.net/api/xml/122.163.6.58
Данные приходят так:
<IpLookup>
<Ip>122.163.6.58</Ip>
<Code>IN</Code>
<Country>India</Country>
<Flag>http://www.ipgp.net/flags/in.png</Flag>
<City>Calcutta</City>
<Region>West Bengal</Region>
<Isp></Isp>
<Lat>22.5697</Lat>
<Lng>88.3697</Lng>
</IpLookup>
Кто -нибудь может предложить, как проанализировать и получить результат
Решение
Использовать simplexml_load_string()
.
Другие советы
Использовать XML Parser Включено в PHP?
Я использую это лично:http://ipinfodb.com/
Примеры очень четкие и краткие, а API очень быстрый.
Удачи.
Использование API в PHP уже описано на их веб -сайте. Почему вы используете, но не читаете?
Я предложено вам использовать xpath
Это более проще схема для доступа к атрибутам. Например, для ваших текущих данных у меня есть следующие:
$file = 'file.xml';
$xml = new SimpleXMLElement($file, NULL, TRUE);
$ipz = $xml->xpath("/IpLookup/Ip");
$country = $xml->xpath("/IpLookup/Country/");
foreach($ipz as $ip)
{
foreach($country as $country)
{
echo $ip.'<br/>';
echo $country.'<br/>';
}
}
Этот код вернет вам ip
и country
для вашего текущего xml
. Анкет Вы можете редактировать его по -своему.