Comment obtenir L'adresse IP du client en utilisant jQuery

je veux savoir comment obtenir l'adresse IP du client en utilisant jQuery?

Est-ce possible? Je sais que javascript pur ne peut pas, mais j'ai obtenu un certain code en utilisant JSONP à partir du débordement de la pile lui-même.

alors, y a-t-il une solution de contournement en utilisant jQuery?

37
demandé sur hippietrail 2009-10-29 09:07:41

3 réponses

jQuery peut gérer JSONP, il suffit de passer une url formatée avec le callback=? paramètre $.getJSON méthode, par exemple:

$.getJSON("https://api.ipify.org/?format=json", function(e) {
    console.log(e.ip);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

cet exemple est d'un service JSONP très simple implémenté avec api.ipify.org.

si vous n'êtes pas à la recherche d'une solution multi-domaines, le script peut être simplifié encore plus, puisque vous n'avez pas besoin du paramètre callback, et que vous retournez JSON pur.

53
répondu CMS 2017-07-25 13:44:46

un simple appel AJAX à votre serveur, et puis la logique de serverside pour obtenir l'adresse ip devrait faire l'affaire.

$.getJSON('getip.php', function(data){
  alert('Your ip is: ' +  data.ip);
});

alors en php vous pouvez faire:

<?php
/* getip.php */
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');

if (!empty($_SERVER['HTTP_CLIENT_IP']))
{
  $ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
  $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
  $ip=$_SERVER['REMOTE_ADDR'];
}
print json_encode(array('ip' => $ip));
24
répondu Alex Sexton 2009-10-29 06:16:23
function GetUserIP(){
  var ret_ip;
  $.ajaxSetup({async: false});
  $.get('http://jsonip.com/', function(r){ 
    ret_ip = r.ip; 
  });
  return ret_ip;
}

si vous voulez utiliser L'IP et l'assigner à une variable, essayez ceci. Appelez simplement GetUserIP()

2
répondu Akash Shah 2016-03-15 08:59:48