wake-up-neo.com

So erhalten Sie die Client-IP-Adresse mit jQuery

Ich möchte wissen, wie ich mithilfe von jQuery die Client-IP-Adresse erhalte.

Ist es möglich? Ich weiß, dass reines Javascript nicht möglich ist, habe aber Code mit JSONP von Stack Overflow selbst erhalten.

Gibt es eine Problemumgehung mit jQuery?

39
Wondering

jQuery kann JSONP verarbeiten. Übergeben Sie einfach eine mit callback =? formatierte URL. Parameter für die Methode $.getJSON, zum Beispiel:

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

Dieses Beispiel zeigt einen sehr einfachen JSONP-Dienst, der mit api.ipify.org Implementiert wurde.

Wenn Sie keine domänenübergreifende Lösung suchen, kann das Skript noch weiter vereinfacht werden, da Sie den Callback-Parameter nicht benötigen und reines JSON zurückgeben.

56
CMS

Ein einfacher AJAX Aufruf an Ihren Server, und dann sollte die serverseitige Logik zum Abrufen der IP-Adresse den Trick tun.

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

Dann könnten Sie in PHP Folgendes tun:

<?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));
26
Alex Sexton
function GetUserIP(){
  var ret_ip;
  $.ajaxSetup({async: false});
  $.get('http://jsonip.com/', function(r){ 
    ret_ip = r.ip; 
  });
  return ret_ip;
}

Wenn Sie die IP verwenden und einer Variablen zuweisen möchten, versuchen Sie dies. Rufen Sie einfach GetUserIP() auf

3
Akash Shah