当初用马桶的时候记得有个插件可以在状态栏上显示本机IP的软件,需要看自己IP的话很方便,免除打开网络连接选项之麻烦。以前想在Firefox里找个这样的插件,可惜搜索不到。现在无聊想自己做,却发现已经有了这样功能的插件,这就省事了,呵呵。不过在这个过程中也学了一些东西,总结一下Javascript显示本机IP的方法(Firefox):
- 调用Java(Netscape Navigator系列):
var localhost = java.net.InetAddress.getLocalHost(); var hostname = localhost.getHostName(); var hostIP = localhost.getHostAddress();
一执行这个代码,系统就多了个javaw进程,不太爽,而且还要求安装Java虚拟机。
- 向远程服务器请求(适合于任何浏览器):这种办法最容易想到了,许多网站在用户浏览时都会给出用户机的IP地址,所以只要向一个提供这种服务的Web服务器发送个请求并分析返回页面就可以了。缺点是,需要与服务器交流,服务器地址变动或者停止服务都会出问题。 自己做一个这样的页面也很简单,下面有两个地址是从Live IP Address插件中找到的:
- http://filezilla.sourceforge.net/misc/ip.php仅返回一个IP地址而没有任何其它东西。
- http://www.showmyip.com/xml/返回一个XML文档,也很容易得到IP地址。
- 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那么简洁,用不了那么多功能。
Leave a Reply