我只是想问,有没有办法如何只使用javascript获取IP地址? 现在已经搜索了很长一段时间,大部分结果都是我需要使用api(s)。 我已经使用过这个webrtc并且效果很好,但是它没有在IE上工作, API很棒,我已经测试了一些,并且在不同的浏览器中运行良好。
但我需要从api获取代码, 或者是否可以从api本身获取/提取代码并为源代码生成指定文件,以便我不会依赖来自互联网的源代码?
我需要来自api的RAW文件,因为如果api的src发生故障,我的网站也会受到影响,所以我希望它能够获取并创建一个外部源并将其包含在我的网站上。
答案 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