Comment obtenir le nom du pays à partir de l'adresse IP en php [double]
-
10-10-2019 - |
Question
Cette question a déjà une réponse ici:
Je veux trouver le pays, la ville, la latitude et la longitude de l'adresse IP en utilisant php. J'utilise cette URL et il est retournais données au format XML.
http://www.ipgp.net/api/xml/122.163.6.58
Les données sont transmises comme ceci:
<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>
Quelqu'un peut-il suggérer comment analyser et obtenir le résultat
La solution
Utilisez simplexml_load_string()
.
Autres conseils
Utilisez le analyseur XML inclus dans PHP?
Je me sers personnellement: http://ipinfodb.com/
Les exemples sont très clairs et concis et l'API est très rapide.
Bonne chance.
L'utilisation de l'API en PHP a déjà décrit dans leur site Web. Pourquoi utiliser mais ne lisez pas?
Je vais vous suggérer d'utiliser ce xpath
est plus schéma plus facile pour accéder aux attributs.
par exemple pour vos données actuelles je donne les résultats suivants:
$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/>';
}
}
ce code vous renvoie le ip
et le country
pour votre xml
actuelle. vous pouvez le modifier à votre façon.