La problématique :
Aujourd'hui, je vous ai dégotté un petit service pour faire parler l'adresse IP de vos utilisateurs. Avant toute choses, l'idée n'est pas de recupérer quelconques informations mais bien de montrer ce que des services web peuvent proposer ! Ce ne sont que des caas d'exemple et j'insiste lourdement là dessus. Je me dégage de toute responsabilité de malveillance de votre part. Ce service renvoie plusieurs informations sur l'utilisateur.
NB : ce service est GRATUIT mais le nombre de requêtes HTTP est contingenté quotidiennement. Si un message d'erreur apparait, revenez demain pour voir mon exemple.

Le service intérrogé :
Le nom de ce service s'appelle shop4api  et vous pouvez aller voir ce qu'il propose via le lient. D'une manière général, les données renvoyées tournent autour de tous ce qu'on veut savoir sur une adresse IP. Petite précision : je n'ai testé que des IP v4, je n'ai pas testé d'IP v6 mais je suis preneur de vos résultats. Une documentation des résultats renvoyés est pas trop mal faite, claire mais entièrement dans la alngue de shakespeare !

Le résultat :

Malheuresement, le service n'est pas gratuit, sauf quelques requetes toutes les 24h. Si vous voyez ci-dessous un message d'erreur, c'est que beaucoup de personnes sont passées aant vous sur ma page et c'est donc tant mieux (c'est rare d'etre heureux qu'un programme ne marche pas :-)

Détaillons le code

ATTENTION : le nombre de requêtes est limité dans sa version gratuite. Si un message d'erreur apparait, c'est que le quota est atteint (mais mon script fonctionne quand même !)

php fin
function json2array($fichier)
{
    $cnt = file_get_contents($fichier);
    return(json_decode($cnt,true));
}

$URL = "https://endpoint.shop4api.com/ip2location/8.8.8.8";
$a=file_get_contents($URL);
$b=array();
$b=json_decode($cnt,true);
echo "<br>";
echo "Numéro de requete sur le serveur ".$b["ipNumber"]."<br>";
echo "Version du protocole TCP/IP ".$b["ipVersion"]."<br>";
echo "Adresse IP ".$b["ipAdresse"]."<br>";
echo "Longitude ".$b["longitude"]."<br>";
echo "Latitude ".$b["latitude"]."<br>";
echo "Code du pays ".$b["countryCode"]."<br>";
echo "Nom du pays ".$b["countryName"]."<br>";
echo "Code postal ".$b["zipCode"]."<br>";
echo "Ville ".$b["cityname"]."<br>";
echo "regionName ".$b["regionName"]."<br>";

php fin

 Commentaires.

Il existe d'autres services comme IPStack qui propose des API différentes, similaire, proches... N'hésitez pas à faire le tour des différents fournisseurs de données par IP. Un autre service testé est IPFind :