如何使用jQuery获取客户端的IP地址(How to get client IP address

2019-09-02 03:22发布

我想知道如何使用jQuery获取客户端的IP地址?

可能吗? 我知道纯JavaScript不能,而是使用了一些代码JSONP从堆栈溢出本身。

那么,有没有使用jQuery的任何解决方法吗?

Answer 1:

jQuery的可以处理JSONP,只是通过与回调格式化的URL =? 参数为$.getJSON方法,例如:

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

这个例子是在实现一个非常简单的JSONP服务的api.ipify.org

如果你是不是在找一个跨域解决方案的脚本可以更简化,因为你并不需要回调参数,并返回纯JSON。



Answer 2:

一个简单的AJAX调用您的服务器,然后服务器端逻辑来获取IP地址应该做的伎俩。

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

然后在PHP,你可以做:

<?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));


Answer 3:

function GetUserIP(){
  var ret_ip;
  $.ajaxSetup({async: false});
  $.get('http://jsonip.com/', function(r){ 
    ret_ip = r.ip; 
  });
  return ret_ip;
}

如果你要使用的IP,并将其分配给一个变量,试试这个。 只需拨打GetUserIP()



文章来源: How to get client IP address using jQuery