Aller au contenu
Se connecter S'inscrire

Info IP (API gratuite de géolocalisation IP)

IP Info est une API gratuite de géolocalisation IP et d’ASN maintenue par Shifter. Une requête GET renvoie le pays, la région, la ville, les coordonnées, le fuseau horaire, l’ISP, l’ASN et le type de connexion d’une adresse IP au format JSON. Il n’y a ni inscription, ni clé API, ni abonnement.

Elle fonctionne sur la même base de données de localisation IP et de réseau que celle utilisée par Shifter pour ses propres pools de proxys. Ainsi, lorsque vous vérifiez une IP de sortie Shifter avec IP Info, vous voyez l’emplacement tel que notre réseau le perçoit.

RequestReturns
GET http://ip-info.com/jsonL’IP qui a effectué la requête (votre serveur, ou votre sortie proxy lorsqu’elle est envoyée via un proxy)
GET http://ip-info.com/json?ip=8.8.8.8Une adresse IPv4 ou IPv6 publique spécifique
GET http://ip-info.com/8.8.8.8/jsonLa même recherche, sous forme de chemin

HTTP (http://ip-info.com/json) fonctionne également et n’est pas redirigé. Utilisez HTTPS depuis les pages web pour éviter le blocage de contenu mixte. Les réponses autorisent les requêtes GET cross-origin, ce qui permet au code du navigateur d’appeler l’API directement.

Fenêtre de terminal
curl --max-time 10 "http://ip-info.com/json?ip=94.204.59.232"
{
"ip": "94.204.59.232",
"city": "Motor City",
"region": "Dubai",
"region_code": "DU",
"country": "AE",
"country_name": "United Arab Emirates",
"continent": "AS",
"loc": "25.0459,55.241",
"latitude": 25.0459,
"longitude": 55.241,
"postal": null,
"timezone": "Asia/Dubai",
"asn": 15802,
"as_name": "Emirates Integrated Telecommunications Company PJSC",
"isp": "Emirates Integrated Telecommunications Company PJSC",
"org": "Emirates Integrated Telecommunications Company",
"connection_type": "Corporate",
"user_type": "business",
"is_anycast": false
}

La réponse réelle comporte 29 champs ; l’exemple ci-dessus montre ceux que la plupart des intégrations exploitent. Chaque champ est toujours présent, et une valeur que la base de données ne possède pas est renvoyée sous forme de null.

Envoyez la requête sans argument via votre proxy. La réponse d’IP Info décrit l’IP de sortie, ce qui vous permet de confirmer que le pays, la ville ou l’ASN que vous avez ciblé est bien celui obtenu.

Fenêtre de terminal
curl --max-time 15 \
--proxy http://p.shifter.io:443 \
--proxy-user "customer-USERNAME-country-us-city-new_york:PASSWORD" \
http://ip-info.com/json

Comparez country (code ISO 3166 à deux lettres) avec le pays demandé et asn (un simple nombre, sans préfixe AS) avec le réseau ciblé. Consultez Ciblage géographique pour les indicateurs de nom d’utilisateur.

IP Info ne nécessite aucun flux d’authentification, un agent peut donc l’appeler comme n’importe quel autre point de terminaison HTTP. Il publie des descriptions lisibles par machine que les agents et les développeurs d’outils peuvent charger directement :

Aucun serveur MCP n’est nécessaire. Si votre framework accepte des définitions de fonctions ou d’outils, celle-ci suffit :

{
"name": "ip_lookup",
"description": "Approximate geolocation and network (ASN, ISP) for a public IP address. Omit ip to look up the agent's own network exit.",
"input_schema": {
"type": "object",
"properties": {
"ip": { "type": "string", "description": "Public IPv4 or IPv6 literal. Leave empty for the caller's exit IP." }
}
}
}

Implémentez-la sous la forme GET http://ip-info.com/json lorsque ip est vide, et GET http://ip-info.com/json?ip=<URL-encoded ip> sinon.

Donnez à l’agent ces règles avec l’outil :

  1. Un appel sans ip décrit le serveur ou la sortie proxy de l’agent lui-même, et non l’utilisateur humain. Pour rechercher l’IP d’un utilisateur, cette IP doit être fournie explicitement à l’agent.
  2. Utilisez country pour les comparaisons de pays et asn pour les vérifications de réseau.
  3. Considérez null comme inconnu. Ne complétez jamais un champ manquant.
  4. La localisation est approximative, et IP Info n’est pas un outil de détection de VPN ou de proxy.

Utilisations typiques par des agents : confirmer que le proxy d’un agent de navigation se trouve dans le bon pays avant d’extraire une page localisée, étiqueter les données collectées avec l’emplacement de sortie depuis lequel elles ont été récupérées, et enrichir les IP de journaux ou d’inscriptions avec le pays et l’ASN.

Les erreurs sont renvoyées au format JSON avec un code stable :

{ "error": { "code": "invalid_ip", "message": "Supply a literal IPv4 or IPv6 address." } }
StatusCodeMeaning
400invalid_ipEntrée malformée, privée, réservée ou autrement non publique, ou paramètres contradictoires
404ip_not_foundAucun enregistrement pour cette IP dans la base de données active
405method_not_allowedUtilisez GET
503database_unavailableTemporaire ; réessayez avec un délai croissant
504timeoutTemporaire ; réessayez avec un délai croissant

Corrigez les entrées 4xx avant de réessayer. Pour les erreurs 503, 504 et les erreurs de connexion, réessayez avec un court délai croissant borné (par exemple 1, 2 et 4 secondes), puis abandonnez et signalez l’échec.

  • Gratuit, sans quota. Il n’y a aucun quota par clé ou par application, ni de clé API. Il s’agit d’un service partagé à capacité finie : effectuez les requêtes dont votre application a besoin et respectez les conditions d’utilisation. L’utilisation automatisée et commerciale est autorisée.
  • Approximatif par conception. Les coordonnées désignent une zone, pas une adresse, et n’identifient jamais une personne.
  • Pas un détecteur de proxy ou de VPN. connection_type, user_type et is_anycast sont des classifications de la base de données, pas une preuve de la façon dont une IP est utilisée.
  • Confidentialité. L’API ne conserve aucun historique de recherche. Consultez la politique de confidentialité.

Questions ou écarts de données : envoyez un e-mail à hi@shifter.io en indiquant l’IP et l’emplacement attendu.