使用javascript获取IP地址

时间:2016-01-04 05:04:48

标签: javascript api

我只是想问,有没有办法如何只使用javascript获取IP地址? 现在已经搜索了很长一段时间,大部分结果都是我需要使用api(s)。 我已经使用过这个webrtc并且效果很好,但是它没有在IE上工作, API很棒,我已经测试了一些,并且在不同的浏览器中运行良好。

但我需要从api获取代码, 或者是否可以从api本身获取/提取代码并为源代码生成指定文件,以便我不会依赖来自互联网的源代码?

我需要来自api的RAW文件,因为如果api的src发生故障,我的网站也会受到影响,所以我希望它能够获取并创建一个外部源并将其包含在我的网站上。

4 个答案:

答案 0 :(得分:16)

尝试以下解决方案: -

第一个选项: -

$(document).ready(function () {
    $.getJSON("http://jsonip.com/?callback=?", function (data) {
        console.log(data);
        alert(data.ip);
    });
});

第二个选项: -

$.get("http://ipinfo.io", function(response) {
    alert(response.ip);
}, "jsonp");

它可能对你有帮助。

答案 1 :(得分:2)

我可能错了,但我认为你只能检测IP服务器端,所以你必须做某种get / post请求。

另一个答案显示了可能的实现。

另请参阅此问题:How to get client's IP address using javascript only?

答案 2 :(得分:0)

您需要在您网站的后端创建脚本,该脚本将返回IP,并通过ajax执行。

或者在生成页面的阶段(在后端),您可以检测IP并将其放入cookie,而不是从JS读取cookie:

function getCookie(name) {
  var matches = document.cookie.match(new RegExp(
    "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
  ));
  return matches ? decodeURIComponent(matches[1]) : undefined;
}

答案 3 :(得分:0)

如果您需要源数据,可以从MaxMind获取:http://dev.maxmind.com/geoip/ 有免费和付费版本。大多数IP信息提供者都使用该库。

如果您只需要IP,则可以创建自己的脚本。只需像PHP一样创建一个后端脚本,并从JS请求它。示例:http://php.about.com/od/learnphp/qt/record_user_ip.htm