【问题标题】:Get client's IP address from an HTTPS hosted website using jquery使用 jquery 从 HTTPS 托管网站获取客户端的 IP 地址
【发布时间】:2015-07-21 13:53:03
【问题描述】:

我正在开发一个需要保存客户端 IP 地址的应用程序。我使用了以下代码:

function GetIPAddress() {

    if (window.XMLHttpRequest) xmlhttp = new XMLHttpRequest();
    else xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    xmlhttp.open("GET", "http://api.hostip.info/get_html.php", false);
    xmlhttp.send();
    hostipInfo = xmlhttp.responseText.split("\n");
    for (i = 0; hostipInfo.length >= i; i++) {
        ipAddress = hostipInfo[i].split(":");
        if (ipAddress[0] == "IP") {
            return ipAddress[1];
        }
    }
    return "0";
}

现在,当我在 localhost 上检查这段代码时,它可以正常工作,但是当我将它放在 HTTPS 环境中进行测试时,这不起作用。

请帮忙!

提前致谢

【问题讨论】:

  • 你的请求返回值是多少?我认为,PHP文件中的问题。
  • 嗨,alex,我也使用了另一个代码,code $.getJSON("jsonip.com?callback=?", function (data) { ipAddress = data.ip; }); code 即使这在 https 上也不起作用。代码不返回任何值,而是停止功能并导致正在运行的应用程序暂停。
  • 如果您尝试从 ssl 网站获取不安全的内容,浏览器会阻止该内容。 hostip.info 显然不支持 SSL。

标签: javascript jquery https ip-address


【解决方案1】:

查看http://www.freegeoip.net/ 他们提供了一项服务,您可以在其中查找 IP 的地理位置,如果没有提供 IP 或主机名,则查找您自己的 IP。

jQuery :

$.get('freegeoip.net/{format}/').success(function(response) {
//code to retrieve ip
var ip = response.ip;
});

注意:支持的格式有:csv、xml、json 和 jsonp

【讨论】:

  • 嗨 Aman,感谢您的回复,当我在 whatsmyip.org 上检查我的 IP 时,它显示的 IP 地址与 freegoip.net 服务完全不同。我可能用错了,或者我理解错了。请清除
  • 我在两个网站上都获得了相同的 IP。点击whatsmyip.orgfreegeoip.net重试
  • 知道了!谢谢!我会在部署我的代码后检查它并让你知道结果。
  • 这个成功了!谢谢阿曼!后来我才知道,我的 IP 地址因为注册到多个端口而不断变化。再次感谢!
猜你喜欢
  • 2014-02-21
  • 2012-06-18
  • 2020-04-06
  • 2014-12-08
  • 2010-12-11
  • 2019-01-14
  • 2019-11-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多