Formate un nombre pour l'affichage
API de localisation d'adresses IP et un service de géolocalisation,permet de trouvez la ville, la région, le pays, le continent, la latitude, la longitude...
Service de recherche d'adresses IP, localisation d'adresses IP et API de géolocalisation d'adresses IP
API de localisation d'adresses IP est un service de géolocalisation.
Il permet de trouvez la ville, la région, le pays, le continent, la latitude, la longitude, le fuseau horaire, le décalage UTC, la devise, la langue, l'asn, l'organisation, l'indicatif téléphonique du pays, le membre de l'Union européenne (UE) à partir d'une adresse IP.
Votre solution unique pour les données relatives aux adresses IP
API prend en charge JSON, CSV, XML et YAML.
Le service api IP ne se limite pas à la localisation des visiteurs de sites Web.
Les clients d'ipapi peuvent utiliser l'API pour :
améliorer l'expérience des utilisateurs en proposant un contenu adapté à chaque visiteur selon sa localisation.
cibler un public spécifique en fonction de son localisation
prévenir efficacement les fraudes.
Le service ipapi fournit une interface API facile à utiliser vous permettant de rechercher toutes les informations associées aux adresses IPv4 et IPv6.
Pour chaque adresse IP, l'API renvoie une réponse contenant plus de 40 points de données uniques, tels que :
Comme l'API est basée sur REST, vous pouvez récupérer les données en utilisant la méthode GET à partir de la réponse reçue de l’API sous la forme d'URL HTTP et les résultats sont renvoyés au format léger JSON ou XML en quelques millisecondes.
Dans Cet article tutoriel nous décrirons en détail les spécifications, l'accès et les fonctionnalités de l'API. Vous y trouverez des exemples de code de programmation.
Pour accéder à l’API vous devez créer un compte c’est gratuit. Pour ce faire voici le lien :
Cliquer ici pour créer un compte ipApi
Après avoir créé un compte, une clé d'accès à l'API vous sera attribuée. Il s'agit d'un hash unique composé de 32 caractères qui vous permettra de vous authentifier auprès de l'interface API ipapi.
Pour pouvoir faire une demande à l’API , il suffit d'ajouter votre clé d'accès à l'URL de base de l'API à l'aide du paramètre access_key comme ceci :
https://api.ipapi.com/api/161.185.160.93? access_key = votre_ACCESS_KEY
Gardez votre clé d'accès à l'API en sécurité : Votre clé d'accès à l'API est privée et ne doit à aucun moment être montrée publiquement. Vous pouvez la réinitialiser avec effet immédiat en utilisant le tableau de bord de votre compte à tout moment.
Sachez aussi qu’un compte gratuit vous donne un nombre de 1000 accès par mois à l’API.
Vous pouvez aussi se connecter en utilisant https .
Pour rechercher les données pour une adresse IP unique de votre choix, il suffit d'ajouter cette adresse IPv4 ou IPv6 à l'URL de base del'API dans les paramètres http de la requête . Comme le montre l’exemple ci-dessus.
Une réponse API standard contiendra des informations générales sur l'adresse IP donnée et des données de localisation.
Mais si vous êtes abonné un plan supérieur, l'API renverra en outre des données sur le fuseau horaire, la devise et la connexion.
{ "ip": "161.185.160.93", "type": "ipv4", "continent_code": "NA", "continent_name": "North America", "country_code": "US", "country_name": "United States", "region_code": "NY", "region_name": "New York", "city": "Brooklyn", "zip": "11238", "latitude": 40.676, "longitude": -73.9629, "location": { "geoname_id": 5110302, "capital": "Washington D.C.", "languages": [{ "code": "en", "name": "English", "native": "English" }], "country_flag": "http://assets.ipapi.com/flags/us.svg", "country_flag_emoji": "🇺🇸", "country_flag_emoji_unicode": "U+1F1FAU+1F1F8", "calling_code": "1", "is_eu": false }, "time_zone": { "id": "America/New_York", "current_time": "2018-09-24T05:07:10-04:00", "gmt_offset": -14400, "code": "EDT", "is_daylight_saving": true }, "currency": { "code": "USD", "name": "US Dollar", "plural": "US dollars", "symbol": "$", "symbol_native": "$" }, "connection": { "asn": 22252, "isp": "The City of New York" } }
<result> <ip>161.185.160.93</ip> <type>ipv4</type> <continent_code>NA</continent_code> <continent_name>North America</continent_name> <country_code>US</country_code> <country_name>United States</country_name> <region_code>NY</region_code> <region_name>New York</region_name> <city>Brooklyn</city> <zip>11238</zip> <latitude>40.676</latitude> <longitude>-73.9629</longitude> <location> <geoname_id>5110302</geoname_id> <capital>Washington D.C.</capital> <languages> <code>en</code> <name>English</name> <native>English</native> </languages> <country_flag>https://assets.ipapi.com/images/assets/flags_svg/us.svg</country_flag> <country_flag_emoji>🇺🇸</country_flag_emoji> <country_flag_emoji_unicode>U+1F1FA U+1F1F8</country_flag_emoji_unicode> <calling_code>1</calling_code> <is_eu/> </location> <time_zone> <id>America/New_York</id> <current_time>2018-09-24T08:27:07-04:00</current_time> <gmt_offset>-14400</gmt_offset> <code>EDT</code> <is_daylight_saving>1</is_daylight_saving> </time_zone> <currency> <code>USD</code> <name>US Dollar</name> <plural>US dollars</plural> <symbol>$</symbol> <symbol_native>$</symbol_native> </currency> <connection> <asn>22252</asn> <isp>The City of New York</isp> </connection> </result>
Selon le plan de votre abonnement et des options spécifiés dans votre demande d’API, plus de 40 objets de réponse uniques sont possibles que l’API est capable de renvoyé dans la réponse.
Voici ci-dessous une liste d’objets de réponse de l’API :
Objet | Description |
---|---|
ip | Renvoie l’adresse IP que vous avez spécifier dans la demande. |
hostname | Renvoie le nom d’hôte associe à l’adresse IP demandée, il faut le spécifier dans les paramètres http de la requête comme suit : https://api.ipapi.com/api/1.4.193.15?access_key =Votre_ACCESS_KEY &hostname =1 |
type | Renvoie le type de l’adresse IP demandée IPv4 ou IPv6 |
continent_code | Renvoie le code du continent à 2 lettres associé à l’adresse IP. |
continent_name | Renvoie le nom du continent associé à l’adresse IP. |
country_code | Renvoie le code de pays à 2 lettres associé à l’adresse IP (exemple pour la france : FR) |
country_name | Renvoie le nom du pays associé à l’adresse IP. |
region_code | Renvoie le code de la région associé à l’adresse IP (par exemple, pour New York: NY ) |
region_name | Renvoie le nom de la région associé à l’adresse IP. |
city | Renvoie la ville associée à l’adresse IP. |
zip | Renvoie le code postal associé à l’adresse IP. |
latitude | Renvoie la latitude associée à l’adresse IP. |
longitude | Renvoie la longitude associée à l’adresse IP. |
location | [Objet] Renvoie plusieurs objets liés à l’emplacement. |
location geoname_id | Renvoie l’identificateur geoname conformément au Registre Geonames. |
location > capital | Renvoie la capitale du pays associé à l’adresse IP. |
location > languages | [TABLEAU] Renvoie un objet contenant un ou plusieurs sous-objets pour la langue associée à l’adresse IP. |
location > languages > code | Renvoie le code de langue à 2 lettres de la langue donnée. |
location > languages > name | Renvoie le nom de la langue (dans la langue principale de la demande d’API). (p. ex. Spanish) |
location > languages > native | Renvoie le nom de la langue maternelle. (p. ex. Español) |
location > country_flag | Renvoie une URL HTTP qui donne une icône du drapeau de pays en forme SVG associée à l’adresse IP. |
location > country_flag_emoji | Renvoie l’icône emoji du drapeau de pays associé à l’adresse IP. |
location > country_flag_emoji_unicode | Renvoie la valeur unicode de l’icône emoji pour le drapeau du pays associé à l’adresse IP. (p. ex. pour le drapeau espagnol : U+1F1EA U+1F1F8) |
location > calling_code | Renvoie le code d’appel téléphonique associé à l’adresse IP. (par exemple pour l’Espagne.34 ) |
location > is_eu | Renvoie si le pays donné fait partie de l’UE, ou non. True/false |
time_zone | [Tableau] Renvoie un objet contenant des données relatives au fuseau horaire. |
time_zone > id | Renvoie l’ID de fuseau horaire associé à l’adresse IP. (p. ex. pour l’EDT)America/New_York |
time_zone > current_time | Renvoie la date et l’heure actuelles associées à l’adresse IP. (p. ex. 2018-03-29T22:31:27-07:00) |
time_zone > gmt_offset | Renvoie le décalage à l’heure GMT du fuseau horaire donné en secondes. (p. ex. pour l’EDT-14400) |
time_zone > code | Renvoie le code universel du fuseau horaire donné. Liste de tous les codes disponibles |
time_zone > is_daylight_saving | Renvoie si le fuseau horaire donné est l’heure d’été ou non. True/false |
currency | [Tableau] Renvoie un objet contenant des données relatives à la devise. |
currency > code | Renvoie le code à 3 lettres de la devise principale associée à l’adresse IP. exemple : USD Liste de tous les codes de devise disponibles |
currency > name | Renvoie le nom de la devise donnée. |
currency > plural | Renvoie le nom de la devise donnée au pluriel. |
currency > symbol | Renvoie le symbole de la devise donnée. |
currency > symbol_native | Renvoie le symbolenatif de la devise donnée. |
connection | [Objet] Renvoie un objet contenant des données relatives à la connexion. |
connection > asn | Renvoie le numéro de système autonome associé à l’adresse IP. |
connection > isp | Renvoie le FAI associé à l’adresse IP. |
security | [Tableau] Renvoie un objet contenant des données liées à la sécurité. |
security > is_proxy | Renvoie si l’adresse IP donnée est associée à un proxy, ou non. True/false |
security > proxy_type | Le cas échéant, renvoie le type de proxy essoin essoin à laquelle l’adresse IP est associée. |
security > is_crawler | Renvoie si l’adresse IP donnée est associée à un robot, ou non. True/false |
security > crawler_name | Renvoie le nom du robot associé à l’adresse IP s’il existe. |
security > crawler_type | Renvoie le type de robot associé à cette adresse IP s’il existe. |
security > is_tor | Renvoie si l’adresse IP donnée est associée au système Tor anonyme, ou non. True/false |
security > threat_level | Renvoie le niveau de menace auquel l'adresse IP est associée. |
security > threat_types | [objet] renvoie un objet contenant tous les types de menaces associés à l'adresse IP s’il existe. |
L'API par défaut fournit des résultats au format JSON.
Mais API peut aussi fournir les résultats sous format XML.
Le format de la réponse peut être contrôlé en ajoutant le paramètre HTTP de l'API à votre URL de demande d'API et en le définissant sur json ou xml.
Les réponses API d'ipapi peuvent être très volumineuses. Pour limiter votre ensemble de résultats d'API à des champs ou des types d'informations spécifiques, il suffit d'ajouter le paramètre fields de l'API de votre URL de demande d'API et de le définir sur un champ spécifique ou une liste de champs séparés par des virgules.
exemple de demande API -JSON:
fields = main // renvoie les champs généraux de l'API, de "ip" à "longitude". fields = city // renvoie uniquement l'objet "city". fields = location // renvoie l'objet "location" complet avec ses sous-objets. // renvoie uniquement l'objet "calling_code" dans "location". fields = location.calling_code // renvoie seulement les objets"city", "latitude"et "longitude ". fields = city,latitude,longitude
L’api peut envoyer une réponse dans différentes langues.
Par default c’est anglais .
Pour autre langue vous devez le préciser dans le paramètre language.
Dans l'exemple de demande ci-dessous, nous spécifions l'espagnol comme langue.
Codes de langue disponibles :
en - Anglais/US de - Allemand ed - Espagnol fr - Français ja - Japonais pt-br - Portugais (Brésil) ru - Russe zh - chinois
Pour réduire la bande passante et accélérer les réponses API, les recherches d'IP standard ne renvoient pas d'informations sur le nom d'hôte. Pour inclure les données de nom d'hôte dans vos réponses API, il suffit d'ajouter le paramètre hostname de l'API et de lui attribuer la valeur 1.
exemples de demande d'API :
exemples de réponse API :
Comme vous pouvez le constater ci-dessous, les informations relatives au nom d'hôte sont désormais renvoyées juste après l'adresse IP.
{ ip":1.4.193.15", hostname":node-cun.pool-1-4.dynamic.totbb.net", [...] }
Remarque : l'activation de la fonction Hostname Lookup peut entraîner une légère diminution de la vitesse des requêtes API..
L'API est capable de fournir de précieuses données d'évaluation de la sécurité, notamment la détection de menaces telles que le réseau TOR, les proxies, etc.
Pour activer les données de sécurité dans votre demande d'API, il suffit d'ajouter le paramètre security de l'API à votre URL de demande d'API et de lui attribuer la valeur 1.
https://api.ipapi.com/api/76.8.255.114?access_key= Votre_ACCESS_KEY&security=1
Dans la réponse API ci-dessous, vous remarquerez que les types de menace attack_source et attack_source_mail ont été détectés, ce qui indique que l'adresse IP donnée est d'une certaine manière associée au spam par e-mail.
{ [...] security":{ is_proxy":false, proxy_type":null, is_crawler":false, crawler_name":null, crawler_type":null, is_tor":false, threat_level":high", threat_types":[ attack_source", attack_source_mail" ] } }
Remarque : Dans la réponse ci-dessus, le reste de la réponse de l'API a été ignoré pour des raisons de lisibilité.
Inscrivez vous pour avoir votre access_key
Vous trouverez ci-dessous un exemple PHP (CURL) utilisant lepoint de terminaison Standard Lookup :
Code PHP
< ?php // définir l'adresse IP et la clé d'accès à l'API $ip='76.8.255.114';/* on peut aussi utiliser la variable superglobale de php comme suit : $ip=$_SERVER['REMOTE_ADDR'] ;*/ $access_key='VOTRE_ACCESS_KEY'; // Initialiser CURL: $ch=curl_init('https://api.ipapi.com/'.$ip.'?access_key='.$access_key.''); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); // Stocke les données dans la variable $json $json=curl_exec($ch); curl_close($ch); // Décoder la réponse JSON et la stocker dans une variable: $api_resultat=json_decode($json,true); // Initialiser CURL: $ch = curl_init('http://api.ipapi.com/'.$ip.'?access_key='.$access_key.''); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Stocke les données dans la variable $json: $json = curl_exec($ch); curl_close($ch); // Décoder la réponse JSON et la stocker dans une variable: $api_resultat = json_decode($json, true); // Output the "calling_code" object inside "location" echo "<pre>"; print_r($api_resultat)."<br>"; echo "</pre>"; // Afficher l'objet "calling_code" dans "location" echo 'code d\'appel : '.$api_resultat['location']['calling_code']; ?>
on peut aussi utiliser la variable superglobale de php $_SERVER['REMOTE_ADDR']; comme suit:
$ip= $_SERVER['REMOTE_ADDR'];
Sachez qu’il ne fonctionne pas si vous travaillez en local vu que vous n’utilisez pas internet et donc vous n’avez pas d’adresse IP autre que le 127.0.0.1
Réponse du code ci-dessus :
Array ( [ip] => 76.8.255.114 [type] => ipv4 [continent_code] => NA [continent_name] => North America [country_code] => US [country_name] => United States [region_code] => MS [region_name] => Mississippi [city] => Ridgeland [zip] => 39157 [latitude] => 32.428611755371 [longitude] => -90.153350830078 [location] => Array ( [geoname_id] => 4443296 [capital] => Washington D.C. [languages] => Array ( [0] => Array ( [code] => en [name] => English [native] => English ) ) [country_flag] => https://assets.ipstack.com/flags/us.svg [country_flag_emoji] => 🇺🇸 [country_flag_emoji_unicode] => U+1F1FA U+1F1F8 [calling_code] => 1 [is_eu] => false ) ) code d'appel : 1
Lookup standard via utilisation JavaScript (jQuery.ajax)
Vous trouverez ci-dessous un exemple en JavaScript utilisant le point d'accès standard Lookup :
Inscrivez vous pour avoir votre access_key
Code java script
// définir L’IP et votre clé d'accès : var ip ='134.201.250.155' var access_key ='YOUR_ACCESS_KEY'; // obtenez le résultat de l'API en utilisant jQuery.ajax : $.ajax({ url:'https://api.ipapi.com/'+ip +'?access_key='+access_key, dataType:'jsonp', success:function(json){ // Afficher l'objet "calling_code" dans "location" : alert(json.location.calling_code); } });
Code PHP
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <style type="text/css"> img{width:1.5em;} </style> </head> <body> <?php // Definir l'adresse IP et L'access_key $ip ='161.185.160.93' ;//$_SERVER['REMOTE_ADDR']; $access_key = 'YOUR_ACCESS_KEY'; // Initialiser CURL: $ch = curl_init('http://api.ipapi.com/'.$ip.'?access_key='.$access_key.'&language=fr'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Stocke les données dans la variable $json: $json = curl_exec($ch); curl_close($ch); // Décoder la réponse JSON et la stocker dans une variable: $api_result = json_decode($json, true); /* Afficher le résultat de la réponse en utilisant la boucle foreach de PHP:*/ echo "<br><br><br>"; foreach($api_result as $c => $v) { if($c!= "location"){ echo $c. ' : ' .$v. '<br>'; }else{ foreach($v as $L => $W ){ if($L != "languages") { echo $L. ' : ' .$W. '<br>'; }else{ foreach($W as $G => $H ){ //if($L != "languages"){ echo $L." : ("; foreach($H as $langage => $valeur ){ echo $langage. ' : ' .$valeur. ' , '; }echo ' )<br>'; } } } } } ?> </body> </html>
Code PHP
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <style type="text/css"> img{width:1.5em;} </style> </head> <body> <?php // Definir l'adresse IP et L'access_key $ip ='61.185.160.93' ; //$_SERVER['REMOTE_ADDR']; $access_key = 'YOUR_ACCESS_KEY'; // Initialiser CURL: $ch = curl_init('http://api.ipapi.com/'.$ip.'?access_key='.$access_key.'&language=fr'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Stocke les données dans la variable $json: $json = curl_exec($ch); curl_close($ch); // Décoder la réponse JSON et la stocker dans une variable: $api_result = json_decode($json, true); ?> <!-- aficher le nom du pays associé à l'adresse IP et l'icone du drapeau de ce pays en utilisant PHP et HTML --> <p><img src=<?php echo $api_result['location']['country_flag']; ?> alt="<?php echo$api_result['country_name']?>" ><span> <?php echo " ".$api_result['country_name']?></span> </p> </body> </html>
Et voila vous constatez à travers les différents exemples que nous avons vu, que vous pouvez utiliser L’API comme vous voulez de façon à ce qu’il répond à vos attentes.
Retour à l'accueil du site
Par carabde 05/octobre/2021