<script type="application/javascript">
function getip(json){
alert(json.ip); // alerts the ip address
}
</script>
<script type="application/javascript" src="http://jsonip.appspot.com/?callback=getip"></script>
Je peux obtenir l'IP de l'utilisateur par ce code ...
Je veux trouver l'emplacement de cette IP. Comment puis-je?
Vous pouvez soumettre l'adresse IP que vous recevez à un service de géolocalisation en ligne, tel que http://www.geoplugin.net/json.gp?ip=<your ip here>&jsoncallback=<suitable javascript function in your source>
, puis en incluant la source renvoyée qui exécutera la fonction que vous spécifiez dans jsoncallback
avec les informations de géolocalisation.
Alternativement, vous voudrez peut-être examiner les fonctionnalités de géolocalisation de HTML5 - vous pouvez en voir une démo en action ici . L'avantage de ceci est que vous n'avez pas besoin de faire de requêtes à des serveurs étrangers, mais cela peut ne pas fonctionner sur les navigateurs qui ne prennent pas en charge HTML5.
Un service gratuit d'ip de géolocalisation géré par la communauté open source qui s'exécute sur la base de données MaxMind est disponible ici: https://ipstack.com/
Exemple
https://api.ipstack.com/160.39.144.19
Limitation
10000 requêtes par mois
Je tiens à souligner que si vous utilisez http://freegeoip.net/ , vous n'avez pas besoin de lui fournir l'adresse IP de l'emplacement du client. Essayez-les:
Cependant, je ne suis pas en mesure de récupérer les informations avec les appels AJAX, probablement en raison d'une politique d'origine croisée. Apparemment, ils n'ont pas autorisé l'accès public à leur système.
C'est assez facile avec un API qui mappe l'adresse IP à l'emplacement. Exécutez l'extrait de code pour obtenir la ville et le pays pour l'IP dans la zone de saisie.
$('.send').on('click', function(){
$.getJSON('https://ipapi.co/'+$('.ip').val()+'/json', function(data){
$('.city').text(data.city);
$('.country').text(data.country);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="ip" value="8.8.8.8">
<button class="send">Go</button>
<br><br>
<span class="city"></span>,
<span class="country"></span>
Juste au cas où vous n'auriez pas pu accomplir le code ci-dessus, voici un moyen simple de l'utiliser avec jquery:
$.getJSON("http://www.geoplugin.net/json.gp?jsoncallback=?",
function (data) {
for (var i in data) {
document.write('data["i"] = ' + i + '<br/>');
}
}
);
Une meilleure façon est de sauter "l'homme du milieu" (ip)
jQuery.get("http://ipinfo.io", function(response) {
console.log(response.city);
}, "jsonp");
Cela vous donne le IP , le ville, le pays, etc.
Une option plutôt peu coûteuse serait d'utiliser l'API ipdata.co , c'est gratuit jusqu'à 1500 requêtes par jour.
Cette réponse utilise une clé API "test" très limitée et destinée uniquement à tester quelques appels. Inscription pour votre propre clé API gratuite et obtenez jusqu'à 1500 demandes par jour pour le développement.
$.get("https://api.ipdata.co?api-key=test", function (response) {
$("#ip").html("IP: " + response.ip);
$("#city").html(response.city + ", " + response.region);
$("#response").html(JSON.stringify(response, null, 4));
}, "jsonp");
<h1><a href="https://ipdata.co">ipdata.co</a> - IP geolocation API</h1>
<div id="ip"></div>
<div id="city"></div>
<pre id="response"></pre>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Voir le Fiddle à https://jsfiddle.net/ipdata/6wtf0q4g/922/
L'un des liens suivants doit prendre en charge ceci:
http://ipinfodb.com/ip_location_api_json.php
Ces liens contiennent des didacticiels pour obtenir l'emplacement d'un utilisateur via Javascript. Cependant, ils le font via une API vers un service de données externe. Si vous avez un site à très fort trafic, vous souhaiterez peut-être héberger les données vous-même (ou obtenir un service d'api premium). Pour héberger tout vous-même, vous devrez héberger une base de données avec géolocalisation IP et utiliser ajax pour alimenter l'emplacement des utilisateurs en Javascript. Si c'est l'approche que vous souhaitez adopter, vous pouvez obtenir une base de données gratuite d'informations IP ci-dessous:
http://www.ipinfodb.com/ip_database.php
Veuillez noter que cette méthode implique d'avoir à mettre à jour périodiquement la base de données pour rester précis dans le traçage des ips aux emplacements.
$.getJSON('//freegeoip.net/json/?callback=?', function(data) {
console.log(JSON.stringify(data, null, 2));
});
Vous pouvez utiliser ce service google service web de géolocalisation IP gratuit
mise à jour
le lien est cassé, je mets ici un autre lien qui inclut @NickSweeting dans les commentaires:
et vous pouvez obtenir les données au format json:
vous pouvez utiliser ipinfodb après avoir obtenu votre clé api, vous pouvez rechercher un emplacement par rapport à une adresse IP spécifique comme celle-ci http://api.ipinfodb.com/v2/ip_query.php?key=" + apiKey + "&ip=" + ip + "&output=xml
vous pouvez ensuite extraire l'emplacement de la réponse xml
Vous avez besoin d'une base de données contenant une adresse IP et un mappage d'emplacement. Ou vous pouvez utiliser de nombreux outils en ligne pour y parvenir, par exemple: http://www.ipligence.com/geolocation
Google renvoie de nombreux résultats sous des mots clés: "Emplacement IP"
Essayez l'API IP TUQ GEO c'est gratuit et vraiment soigné et doux avec le support jsonp