javascript获取客户端IP

时间:2010-08-22 04:43:44

标签: 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;
    }
}

我不明白如何包含网址以及如何使用getip功能。

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

谢谢!

4 个答案:

答案 0 :(得分:4)

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

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

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

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

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

getip({"ip": "147.234.2.5", "address":"147.234.2.5"});

该行使用适当的参数执行您的函数。请注意,函数的名称由查询字符串提供。

答案 1 :(得分:0)

您只能通过JavaScript访问您的域,除非您与iframes进行通信,否则无法使用JavaScript进行跨域通信。

如果您有动态后端,如PHP,Java,Python,Ruby,CGI等,您可以轻松地从访问您页面的用户那里获取IP地址。每种语言都有自己的机制。

答案 2 :(得分:0)

您的javascript语法中有一个随机的,自由浮动的网址。

这是如何使用jquery进行远程JSON请求。

http://api.jquery.com/jQuery.getJSON/

我建议你更熟悉一般的javascript。

答案 3 :(得分:0)

您可以使用以下内容:

<script type="text/javascript">
  var userip;
</script>
...
<script type="text/javascript" src="http://l2.io/ip.js?var=userip"</script>
...
<script type="text/javascript">
  document.write("Your IP is :", userip);
</script>

以下是此库的网址:http://l2.io/