我想知道如何使用jQuery獲取客戶端IP地址?如何使用jQuery獲取客戶端IP地址
可能嗎?我知道純JavaScript不能,但是使用Stack Overflow本身的JSONP
得到了一些代碼。
那麼,有沒有使用jQuery的解決方法?
我想知道如何使用jQuery獲取客戶端IP地址?如何使用jQuery獲取客戶端IP地址
可能嗎?我知道純JavaScript不能,但是使用Stack Overflow本身的JSONP
得到了一些代碼。
那麼,有沒有使用jQuery的解決方法?
jQuery可以處理JSONP,只需傳遞格式爲callback =?的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()
會試試看。謝謝。 – Wondering
很酷,但該應用程序超過配額:( –
'jsonip.appspot.com'也明顯支持'CORS'和'JSONP'。 – hippietrail