OUJOOD.COM
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. |
| 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.
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:
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. // renvoie uniquement l'objet "calling_code" dans "location". fields = location.calling_code // renvoie seulement les objets"city", "latitude"et "longitude ". fields = city,latitude,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.
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 :
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
< ?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
// 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);
}
});
1)Afficher le résultat de la réponse de l’API en utilisant la boucle foreach de PHP
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>
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
<!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