【问题标题】:JQuery : recover IP information in httpsJQuery:在 https 中恢复 IP 信息
【发布时间】:2016-05-13 23:25:25
【问题描述】:

我需要知道用户 ip 对应的国家,并且它用于与这个 jquery api 一起工作:

$.get("http://ipinfo.io", function() {}, "jsonp").always(function(resp) {
            var countryCode = (resp && resp.country) ? resp.country : "";
            callback(countryCode);
        });

但自从我将 SSL 证书添加到我的网页后,它就不再起作用了。我尝试将 ipinfo.io 链接放在 https:// 中,但您必须付费才能启用此 api 的 https 版本。所以我想知道是否有人知道在 https 中获取这些信息的免费方式。 谢谢

【问题讨论】:

  • 您可以将您的 ip 查找委托给您的网络服务器(它将向客户端发出请求并将响应发回)。
  • 我不明白你说的委托给网络服务器是什么意思...
  • 你在服务器端实现获取ip信息的逻辑,你的服务器将调用ipinfo.io并将其发送回客户端......
  • 好的!那么在php代码中?但是你知道怎么做吗?
  • curl 是你的朋友

标签: jquery ssl web https ip


【解决方案1】:

您可以将该作业委托给服务器。用 PHP-curl 实现这样的东西很容易(我没有测试它,但我认为它有效):

<?php 
        $url="http://ipinfo.io/".$_SERVER['REMOTE_ADDR'];
        // create curl resource 
        $curl = curl_init(); 
        // set the target url
        curl_setopt($curl, CURLOPT_URL, $url); 
        //return as string 
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
        // store response body
        $output = curl_exec($curl); 
        // close curl resource to free up system resources 
        curl_close($curl);  
        echo $output;    

在会话中存储 ip 信息以避免每次都调用 web 服务会很聪明,但这超出了问题的范围。

【讨论】:

  • 我需要更多信息“它不起作用”不是一个好的描述
  • 它返回了ip地址
  • 如果您从本地网络进行测试,这很正常,因为本地 IP 地址没有地理 IP...主机名,因为我在局域网上)。它不能在局域网上运行,但可以在线......
  • @n00dI3,我又试了一次,现在它在 localhost 中显示了正确的数组,但是 boot(false) online :/
猜你喜欢
  • 2019-12-30
  • 1970-01-01
  • 2012-12-28
  • 2015-07-31
  • 1970-01-01
  • 1970-01-01
  • 2016-01-16
  • 2016-03-07
  • 1970-01-01
相关资源
最近更新 更多