How to get client IP address using jQuery

前端 未结 4 1415

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 Overfl

相关标签:
4条回答
  • 2020-11-27 03:20

    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.

    0 讨论(0)
  • 2020-11-27 03:23
    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()

    0 讨论(0)
  • 2020-11-27 03:35
    
    <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>
    
    0 讨论(0)
  • 2020-11-27 03:40

    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));
    
    0 讨论(0)
提交回复
热议问题