Как получить IP-адрес клиента с помощью jQuery

Я хочу знать, как получить IP-адрес клиента с помощью jQuery?

Возможно ли это? Я знаю, что чистый javascript не может, но получил некоторый код, используя JSONP из самого.

Итак, есть ли способ обхода использования jQuery?

Ответ 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>

Ответ 2

Простой вызов AJAX на ваш сервер, а затем логика serveride для получения 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));

Ответ 3

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

Если вы хотите использовать IP-адрес и назначить его переменной, попробуйте это. Просто позвоните GetUserIP()

Ответ 4


<html lang="en">
<head>
    <title>Jquery - get ip address</title>
    <script type="text/javascript" src="//cdn.jsdelivr.net/jquery/1/jquery.min.js"></script>
</head>
<body>


<h1>Your Ip Address : <span class="ip"></span></h1>


<script type="text/javascript">
    $.getJSON("http://jsonip.com?callback=?", function (data) {
        $(".ip").text(data.ip);
    });
</script>


</body>
</html>