javascript获取客户端ip

JSN*_*bie 3 javascript jquery

您好,我发现如何通过此处的答案获取客户端 IP: Can I Perform a DNS Lookup (hostname to IP address) using client-side Javascript?

但我不明白如何使用它。

这就是我所拥有的:

var user;
if ($('#user-id').length) {
    user = $('#user-id').text();
} else {
    http://jsonip.appspot.com/?callback=getip
    function getip(json){
       user = json.ip;
    }
}
Run Code Online (Sandbox Code Playgroud)

我不明白如何包含 url 以及如何使用 getip 函数。

我需要将用户设置为 else 中的 IP 地址。

谢谢!

Kob*_*obi 5

使用 jQuery,您可以进行JSONP调用:

$.getJSON('http://jsonip.appspot.com/?callback=?',
        function(data){
          alert(data.ip);
        });
Run Code Online (Sandbox Code Playgroud)

可能更容易理解 - 没有 jQuery 的替代方案是:

<script type="text/javascript">
    function getip(data){
      alert(data.ip);
    }
</script>
<script type="text/javascript" src="http://jsonip.appspot.com/?callback=getip">
</script>
Run Code Online (Sandbox Code Playgroud)

请注意,当您将http://jsonip.appspot.com/?callback=getip作为脚本包含在 HTML 中时,您将获得有效的 JavaScript 作为响应:

getip({"ip": "147.234.2.5", "address":"147.234.2.5"});
Run Code Online (Sandbox Code Playgroud)

该行使用正确的参数执行您的函数。请注意,函数的名称是通过查询字符串指定的。