How to get client IP address using jQuery

2019-01-04 23:37发布

I want to know how to get client IP address using jQuery?

Is it possible? I know pure javascript can't, but got some code using JSONP from Stack Overflow itself.

So, is there any workaround using jQuery?

3条回答
对你真心纯属浪费
2楼-- · 2019-01-05 00:23

A simple AJAX call to your server, and then the serverside logic to get the ip address should do the trick.

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

Then in php you might do:

<?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));
查看更多
叛逆
3楼-- · 2019-01-05 00:33

jQuery can handle JSONP, just pass an url formatted with the callback=? parameter to the $.getJSON method, for example:

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

This example is of a really simple JSONP service implemented on with api.ipify.org.

If you aren't looking for a cross-domain solution the script can be simplified even more, since you don't need the callback parameter, and you return pure JSON.

查看更多
Explosion°爆炸
4楼-- · 2019-01-05 00:35
function GetUserIP(){
  var ret_ip;
  $.ajaxSetup({async: false});
  $.get('http://jsonip.com/', function(r){ 
    ret_ip = r.ip; 
  });
  return ret_ip;
}

If you want to use the IP and assign it to a variable, Try this. Just call GetUserIP()

查看更多
登录 后发表回答