JS获取IP、MAC和主机名的五种方法


Posted in Javascript onNovember 14, 2013

今天在搞JS(javascript)获取客户端IP的小程序,上网搜了下,好多在现在的系统和浏览器中的都无效,很无奈,在Chrome、FireFox中很少搞到直接利用ActiveX获取IP等的JS脚本。下面的代码是我在所有windowsNT5.0及以上的系统上都测试通过的,给出代码:

方法一(只针对IE且客户端的IE允许AcitiveX运行,通过平台:XP,SERVER03,2000):
获取客户端IP。

<HTML> 
<HEAD> 
<TITLE>GetLocalIP</TITLE> 
</HEAD> 
<BODY> 
获取IP: 
<script language="JavaScript"> function GetLocalIPAddr(){ var oSetting = null; var ip = null; try{ oSetting = new ActiveXObject("rcbdyctl.Setting"); ip = oSetting.GetIPAddress; if (ip.length == 0){ return "没有连接到Internet"; } oSetting = null; }catch(e){ return ip; } return ip; } document.write(GetLocalIPAddr()+"<br/>") </script> 
</BODY> 
</HTML>

方法二(所有的平台及浏览器):
获取客户端处在网络中的IP,前提是客户得联网。
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<title>JavaScript获取客户端IP[利用新浪接口]</title> 
</head> 
<body> 
<script type="text/javascript" src="http://counter.sina.com.cn/ip/" charset="gb2312"></script> <!--获取接口数据,注意charset --> 
<script type="text/javascript"> 
document.writeln("IP地址:"+ILData[0]+"<br />"); //输出接口数据中的IP地址 
document.writeln("地址类型:"+ILData[1]+"<br />"); //输出接口数据中的IP地址的类型 
document.writeln("地址类型:"+ILData[2]+"<br />"); //输出接口数据中的IP地址的省市 
document.writeln("地址类型:"+ILData[3]+"<br />"); //输出接口数据中的IP地址的 
document.writeln("地址类型:"+ILData[4]+"<br />"); //输出接口数据中的IP地址的运营商 
</script> 
</body> 
</html>

方法三(只针对IE且客户端的IE允许AcitiveX运行):
调用VBS脚本,获取计算机名(有些人不知道什么是计算机名,简单解释就是它是这台机器的物理名称而不是你在用的那个用户名)和登录的用户名。
<HTML> 
<HEAD> 
<TITLE>WMI Scripting HTML</TITLE> 
</HEAD> 
<BODY> 
<script language=javascript> 
var WshShell =new ActiveXObject("WScript.Shell"); 
document.write("计算机名 = "+ WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")+"<br/>"); 
document.write("登录用户名 = "+ WshShell.ExpandEnvironmentStrings("%USERNAME%")+"<br/>"); 
</script> 
</BODY> 
</HTML>

方法四(只针对IE且客户端的IE允许AcitiveX运行):
获取计算机名、登录的用户名和域名(如果你加入了域,显示你这台机器处在哪个域中)。
<HTML> 
<HEAD> 
<TITLE>WMI Scripting HTML</TITLE> 
</HEAD> 
<BODY> 
<script language=javascript> 
var wshNetwork = new ActiveXObject("WScript.Network"); 
document.write("域名 = "+ wshNetwork.UserDomain+"<br/>"); 
document.write("计算机名 = "+ wshNetwork.ComputerName+"<br/>"); 
document.write("登录用户名 = "+ wshNetwork.UserName+"<br/>"); 
</script> 
</BODY> 
</HTML>

方法五(只针对IE且客户端的IE允许AcitiveX运行):
能够获取到局域网IP地址,本机的MAC,以及机器名(代码来源网络)。
<html> 
<head> 
<title></title> 
</head> 
<body> 
<object classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6" id="locator" style="display:none;visibility:hidden"></object> 
<object classid="CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223" id="foo" style="display:none;visibility:hidden"></object> 
<form name="myForm"> 
<br/>MAC地址:<input type="text" name="macAddress"> 
<br/>IP地址:<input type="text" name="ipAddress"> 
<br/>主机名:<input type="text" name="hostName"> 
</form> 
</body> 
</html> 
<script language="javascript"> 
var sMacAddr=""; 
var sIPAddr=""; 
var sDNSName=""; 
var service = locator.ConnectServer(); 
service.Security_.ImpersonationLevel=3; 
service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration'); 
</script> 
<script FOR="foo" EVENT="OnObjectReady(objObject,objAsyncContext)" LANGUAGE="JScript"> 
if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true){ 
if(objObject.IPEnabled && objObject.IPAddress(0) !=null && objObject.IPAddress(0) != "undefined") 
sIPAddr = objObject.IPAddress(0); 
if(objObject.MACAddress != null &&objObject.MACAddress != "undefined") 
sMacAddr = objObject.MACAddress; 
if(objObject.DNSHostName != null &&objObject.DNSHostName != "undefined") 
sDNSName = objObject.DNSHostName; 
} 
</script> <script FOR="foo" EVENT="OnCompleted(hResult,pErrorObject, pAsyncContext)" LANGUAGE="JScript"> 
myForm.macAddress.value=sMacAddr; 
myForm.ipAddress.value=sIPAddr; 
myForm.hostName.value=sDNSName; 
</script>
Javascript 相关文章推荐
JS自动缩小超出大小的图片
Oct 12 Javascript
javascript阻止scroll事件多次执行的思路及实现
Nov 08 Javascript
jquery中获得元素尺寸和坐标的方法整理
May 18 Javascript
一个支付页面DEMO附截图
Jul 22 Javascript
JS按回车键实现登录的方法
Aug 25 Javascript
JS实现从连接中获取youtube的key实例
Jul 02 Javascript
jQuery 判断图片是否加载完成方法汇总
Aug 10 Javascript
谈谈对offsetleft兼容性的理解
Nov 11 Javascript
js模拟微博发布消息
Feb 23 Javascript
vue利用axios来完成数据的交互
Mar 23 Javascript
jQuery实现ajax回调函数带入参数的方法示例
Jun 26 jQuery
Vue自动构建发布脚本的方法示例
Jul 24 Javascript
javascript验证上传文件的类型限制必须为某些格式
Nov 14 #Javascript
js截取小数点后几位的写法
Nov 14 #Javascript
js 判断文件类型并控制表单提交示例代码
Nov 14 #Javascript
基于jquery实现的文字淡入淡出效果
Nov 14 #Javascript
JQuery实现倒计时按钮具体方法
Nov 14 #Javascript
jquery动态增加删除表格行的小例子
Nov 14 #Javascript
js取消单选按钮选中并判断对象是否为空
Nov 14 #Javascript
You might like
递归列出所有文件和目录
2006/10/09 PHP
PHP的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
2016/05/13 PHP
JQuery中html()方法使用不当带来的陷阱
2011/04/07 Javascript
js模仿hover的具体实现代码
2013/12/30 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
2013/12/31 Javascript
JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
2014/08/16 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
BootStrap 智能表单实战系列(二)BootStrap支持的类型简介
2016/06/13 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
js实现按钮控制带有停顿效果的图片滚动
2016/08/30 Javascript
Angular.js中ng-include用法及多标签页面的实现方式详解
2017/05/07 Javascript
关于webpack代码拆分的解析
2017/07/20 Javascript
纯js实现画一棵树的示例
2017/09/05 Javascript
jQuery+ajax实现动态添加表格tr td功能示例
2018/04/23 jQuery
使用Node搭建reactSSR服务端渲染架构
2018/08/30 Javascript
vue 在单页面应用里使用二级套嵌路由
2020/12/19 Vue.js
Java实现的执行python脚本工具类示例【使用jython.jar】
2018/03/29 Python
浅谈python之高阶函数和匿名函数
2019/03/21 Python
python安装scipy的方法步骤
2019/06/26 Python
基于Python实现船舶的MMSI的获取(推荐)
2019/10/21 Python
django框架forms组件用法实例详解
2019/12/10 Python
css3闪亮进度条效果实现思路及代码
2013/04/17 HTML / CSS
阿迪达斯印度官方商城:adidas India
2017/03/26 全球购物
SKECHERS斯凯奇中国官网:来自美国的运动休闲品牌
2018/11/14 全球购物
物理教师自荐信范文
2013/12/28 职场文书
小学校园活动策划
2014/01/30 职场文书
法定授权委托证明书
2014/09/27 职场文书
夫妻婚内购房协议书
2014/10/05 职场文书
2014年精神文明工作总结
2014/12/23 职场文书
2015年出纳个人工作总结
2015/04/02 职场文书
教师纪律作风整顿心得体会
2016/01/23 职场文书
详解Mysql 函数调用优化
2021/04/07 MySQL
高端收音机+蓝牙音箱,JBL TUNER FM带收音蓝牙音箱评测
2021/04/24 无线电
用Python将GIF动图分解成多张静态图片
2021/06/11 Python
MySQL系列之十二 备份与恢复
2021/07/02 MySQL