Partager

Géolocalisation en temps réel et Recherche d'adresses IP inversées REST API

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.

La recherche d'adresse IP sécurisée, rapide, gratuite et précise.

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 :

  •  des données de localisation
  •  des données de connexion
  •  des informations sur le FAI
  •  le fuseau horaire
  •  la devise
  •  des données d'évaluation de la sécurité.

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.

Spécifications et vue d'ensemble

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.

Clé d'accès à l'API et authentification

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.

exemple de réponse API :

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.

Réponse sous forme Json

{
    "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"
    }
}

Réponse sous forme XML

<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>

Objets response

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.
Afficher tous les types de proxy potentiels
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.

Les options

Spécifier le format de la réponse ( valable dans touts les plans)

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.

https://api.ipapi.com/api/161.185.160.93? access_key=votre_ACCESS_KEY & output =xml

Spécifier les champs de réponse ( valable dans touts les plans)

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:

https://api.ipapi.com/api/161.185.160.93?access_key =YOUR_ACCESS_KEY &fields =latitude,longitude

voici quelques exemples

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.
fields = location.calling_code // renvoie uniquement l'objet "calling_code" dans "location".  
fields = city,latitude,longitude // renvoie seulement les objets "city", "latitude" et "longitude ".

Précisez la langue de la réponse ( valable dans touts les plans)

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.

https//api.ipapi.com/api/161.185.160.93? access_key = Votre_ACCESS_KEY & language = es

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

Activer la recherche de nom d'hôte( valable dans touts les plans)

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 :

https://api.ipapi.com/api/1.4.193.15?access_key=Votre_ACCESS_KEY&hostname =1

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..

Activer les données de sécurité (Disponible sur : Plan Business Pro et supérieur)

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

exemple de réponse API :

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é.

exemples de code

exemple de code en utilisant CURL PHP

Inscrivez vous pour avoir votre access_key

Vous trouverez ci-dessous un exemple PHP (CURL) utilisant lepoint de terminaison Standard Lookup :

Code PHP
Sélectionner le code


< ?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

exemple de code en utilisant JavaScript (jQuery.ajax)

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
Sélectionner le code


// 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);       
    }
});

 
Autre exemples

1)Afficher le résultat de la réponse de l’API en utilisant la boucle foreach de PHP

Code PHP
Sélectionner le code


<!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>

 

2 ) aficher le nom du pays associé à l'adresse IP et l'icone du drapeau de ce pays en utilisant PHP et HTML

Code PHP
Sélectionner le code


<!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>

 

Conclusion

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

SCREEBER - Logiciel de copywriting

SCREEBER - Logiciel de copywriting
Augmentez vos résultats en rejoignant les 1600 entrepreneurs qui utilisent Screeber®, le seul logiciel de Copywriting (en français) qui rédige avec vous des textes de vente qui convertissent


HTML5, CSS3, JavaScript pour débutants Tome 1 HTML5, CSS3, JavaScript pour débutants Tome 1
Premier tome d\'une série vidéo dédiée à l\'apprentissage des langages HTML, CSS et JavaScript.

Regarder aussi nos cours :

Manipulation de variables de chaines

Une variable de chaîne est employée pour stocker et manipuler du texte. Dans cet article de notre cours nous allons apprendre comment manipuler des variables contenant un texte

 Détermine si une variable est définie et est différente de NULL">isset

 Détermine si une variable est définie et est différente de NULL

Balise hgroup

Groupes les en-têtes (H1 à H6) des éléments