最近遇到一个问题,通过js获取ip地址可以使用这个方法:
$.get('http://api.hostip.info/get_html.php', function(data) {
var tempData = data.split("\n");
for (var i in tempData) {
var val = tempData[i].split(":");
if (val[0] === "IP") {
console.log(val[1]);
}
}
});
那有没有可能使用js来获取本机局域网内的地址,就是路由器下面192开头的那种,如果没有那需要通过什么来辅助才能够获取到?
迷茫2017-04-10 15:11:33
这段代码本质是上是让浏览器请求某个服务器,然后服务器返回这次链接中的ip.src
,获得ip地址的。
其实,运行在浏览器中的js是不能够直接访问电脑中的绝大部分资源的。这个主要是为了安全性,你想如果一个网页上的代码可以访问你电脑里的文件那是不是就很危险的。
如果你非要实现这样的功能,就需要开发浏览器插件(不是扩展,扩展和插件是有区别的),但要求是用户必须安装你的插件。
不是运行在浏览器中的js是可以做到直接读取本机的ip地址的,比如nodejs
天蓬老师2017-04-10 15:11:33
直接获取局域网貌似不太行。不过你可以创建一个服务器页面。然后通过ajax请求这个地址。从服务器返回出这个IP。
类似通过访问ip138来解析里面的自己公网IP地址一样
阿神2017-04-10 15:11:33
js是有权限限制的,所以这个做不到,还有一些其他方面也很难实现,如操作本地文件,如果要做的话可以用后台语言或者nodejs。而且在用后台技术获取这个ip的时候,我们获取到的是路由器的(如果有的话),而不是真正分配给我们的。