Javascript或HTML5检索LOCAL ip

Tho*_*ack 2 javascript html5

我使用笔记本电脑进行工作和个人使用.因此它有时会连接到家庭网络,有时会连接到许多可能的工作场所网络之一

我一直在想我的自定义浏览器的主页和/或MDM主题(Linux Mint的登录页面,HTML5功能),都包括在自定义的HTML页面,也许使用JavaScript,但我应该知道的笔记本电脑是.

想想我去办公室,我想了解服务器的状态和办公室服务器的链接(A,B,C); 去客户所在地,我需要连接办公室的外部IP(A*,B*)和客户服务器(X,Y,Z); 回到家里,我想要提供信息,新闻,我的足球团队成绩,推特等等.我可以通过javascript设置所有这些(例如,使用表或字典:places = {ip1:[A,B,C],ip2:[X,Y,Z]}或类似的东西.

我知道有很多地方在讨论检索我的公共IP等等......但是使用它们需要一个主动和开放的互联网连接.我将使用它的一些地方没有互联网访问,或者需要使用具有登录名和密码的代理.因此,任何涉及外部站点引用的解决方案都不起作用(但客户使用我需要访问的本地Intranet服务).

我也试着保持简单:想法是构建一些快速索引页面.所以我不想在页面中加载java(我不确定MDM html5主题是否会支持它)

所以,问题是:有没有办法来检索使用纯JavaScript或HTML5,完全客户端的本地IP(没有公网IP),避免了PHP,ASP,SSI,调用公共网络或第三方插件(Java /闪光)?

我认为响应不是,因为我没有找到像"get_ip()"这样的js函数,但我希望是错的.

我能想到的唯一解决方案是:

  • 安装本地Web服务器,一个小nginx或可用于检索客户端ip请求的东西
  • 用java(拜托,不!)
  • 使用html5文件系统api并在文件夹中查找数据,其中一些脚本在启动时编写了ip
  • 更改以前的脚本只需重写HTML文件我将使用ip与硬盘编码
  • 使用javascript ping每个可能网络上的已知服务器列表

还有其他想法吗?谢谢

dan*_*vis 5

剥离链接示例的复杂性:

function getLocalIP(cb) {

    var RTCPeerConnection = window.webkitRTCPeerConnection || window.mozRTCPeerConnection || window.RTCPeerConnection,
    rtc = new RTCPeerConnection({
        iceServers: []
    });
    if (window.mozRTCPeerConnection) rtc.createDataChannel('', {reliable: false});
    rtc.onicecandidate = function(e) {
        if (cb && e.candidate) {
            cb(e.candidate.candidate.split(" ")[4]);
            cb = null;
        }
    }; 

    rtc.createOffer(function(resp) {
            var moz=resp.sdp && 
                   resp.sdp.indexOf("c=IN IP4") !==0 && 
                   resp.sdp.split("c=IN IP4")[1].trim().split(/\s/)[0];
            if(moz && moz!=="0.0.0.0"){
                 cb( moz );
            }else{
                 rtc.setLocalDescription(resp);
            }
    }, Boolean);
} /* end getIP() */

getLocalIP(alert)
Run Code Online (Sandbox Code Playgroud)

在Chrome和Firefox中提供相同的结果,在我的IE副本中无效.