Firefox显示本机IP(Javascript)

当初用马桶的时候记得有个插件可以在状态栏上显示本机IP的软件,需要看自己IP的话很方便,免除打开网络连接选项之麻烦。以前想在Firefox里找个这样的插件,可惜搜索不到。现在无聊想自己做,却发现已经有了这样功能的插件,这就省事了,呵呵。不过在这个过程中也学了一些东西,总结一下Javascript显示本机IP的方法(Firefox):

  1. 调用Java(Netscape Navigator系列):
    var localhost = java.net.InetAddress.getLocalHost();
    var hostname = localhost.getHostName();
    var hostIP = localhost.getHostAddress();

    一执行这个代码,系统就多了个javaw进程,不太爽,而且还要求安装Java虚拟机。

  2. 向远程服务器请求(适合于任何浏览器):这种办法最容易想到了,许多网站在用户浏览时都会给出用户机的IP地址,所以只要向一个提供这种服务的Web服务器发送个请求并分析返回页面就可以了。缺点是,需要与服务器交流,服务器地址变动或者停止服务都会出问题。 自己做一个这样的页面也很简单,下面有两个地址是从Live IP Address插件中找到的:
  3. Mozilla软件本身的服务:从Show IP插件里看到这样的方法,应该算是最好的解决方案了。
    cls = Components.classes['@mozilla.org/network/dns-service;1'];
    iface = Components.interfaces.nsIDNSService;
    dns = cls.getService(iface);
    a = new Array();
     try {
    	var nsrecord = dns.resolve(dns.myHostName, true);
    	while (nsrecord.hasMore()) {
    		a[a.length] = nsrecord.getNextAddrAsString();
    	}
    } catch (e) { }
    localip = a.join(" | ");

先就用Show IP了,不过它不像Live IP Address那么简洁,用不了那么多功能。

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.