我想知道如何使用jQuery获取客户端的IP地址?
可能吗? 我知道纯JavaScript不能,而是使用了一些代码JSONP
从堆栈溢出本身。
那么,有没有使用jQuery的任何解决方法吗?
我想知道如何使用jQuery获取客户端的IP地址?
可能吗? 我知道纯JavaScript不能,而是使用了一些代码JSONP
从堆栈溢出本身。
那么,有没有使用jQuery的任何解决方法吗?
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。
一个简单的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));
function GetUserIP(){
var ret_ip;
$.ajaxSetup({async: false});
$.get('http://jsonip.com/', function(r){
ret_ip = r.ip;
});
return ret_ip;
}
如果你要使用的IP,并将其分配给一个变量,试试这个。 只需拨打GetUserIP()