ASP获取客户端硬件信息(CPU、硬盘、主板、mac地址等)

这篇博客介绍了如何使用ASP脚本通过WMI(Windows Management Instrumentation)来获取客户端的硬件信息,包括CPU型号、硬盘序列号、主板信息以及MAC地址。用户需要在浏览器设置中开启对ActiveX控件的支持,特别是对于Windows XP、Vista和IE8。文章提供了详细的代码示例和步骤,适用于需要通过硬件信息进行安全验证的场景。
摘要由CSDN通过智能技术生成

ASP获取客户端硬件信息(CPU、硬盘、主板、mac地址等)

〔转〕http://blog.csdn.net/tsxnb/archive/2009/10/02/4627683.aspx

 

<HTML>
<HEAD>
<TITLE>WMI Scripting HTML </TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<SCRIPT language=JScript event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for=foo>
      var value = "客户端硬件信息";
   var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
   var service = locator.ConnectServer(".");
   var properties = service.ExecQuery("SELECT * FROM Win32_Processor");//CPU 信息
   var e = new Enumerator (properties);
   var p = e.item ();
      var value=value+ p.SystemName + "CPU:"+ p.Name +p.ProcessorID
   var properties = service.ExecQuery("SELECT * FROM Win32_DiskDrive");//硬盘序列号 信息
   var e = new Enumerator (properties);
   var p = e.item ();
      var value=value+"HD:"+p.signature
   var properties = service.ExecQuery("SELECT * FROM Win32_BaseBoard");//主板信息
   var e = new Enumerator (properties);
   var p = e.item ();
      //var value=value+"BB:"+ p.Product; //在一些机器在上无法读取
document.forms[0].txtMACAddr.value=unescape(MACAddr);  //MAC
document.forms[0].txtIPAddr.value=unescape(IPAddr);    //IP
//document.forms[0].txtDNSName.value=unescape(sDNSName); //主机名
document.forms[0].txtDNSName.value=value; //增加的部份包括CPU硬盘主板
document.formbar.submit();
</SCRIPT>
<SCRIPT language=JScript event=OnObjectReady(objObject,objAsyncContext) for=foo>
 if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true)
 {
 if(objObject.MACAddress != null && objObject.MACAddress != "undefined") MACAddr = objObject.MACAddress;
 if(objObject.IPEnabled && objObject.IPAddress(0) != null && objObject.IPAddress(0) != "undefined") IPAddr = objObject.IPAddress(0);
 if(objObject.DNSHostName != null && objObject.DNSHostName != "undefined") sDNSName = objObject.DNSHostName;
 }
 </SCRIPT>
<META content="MSHTML 6.00.2800.1106" name=GENERATOR>
</HEAD>
<BODY>
<OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT> </OBJECT>
<OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223> </OBJECT>
<SCRIPT language=JScript>
var service = locator.ConnectServer();
var MACAddr ;
var IPAddr ;
var DomainAddr;
var sDNSName;
service.Security_.ImpersonationLevel=3;
service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
</SCRIPT>
<FORM id="formfoo" name="formbar" action="mac.asp" method="post">
 <INPUT type="hidden" value="00-11-11-B4-52-EF" name="txtMACAddr" size="10">
 <INPUT type="hidden" value="210.42.38.50" name="txtIPAddr">
 <INPUT type="hidden" value="zhupan" name="txtDNSName">
</FORM>
</BODY>
</HTML> 

注意:以上Activex控件将被阻止,

1、对于Windows XP或Windows 2003,打开IE的“工具”菜单栏,选择“Internet选项”,点击“安全”—>“受信任站点”,选择“自定义级别”,打开“安全设置”对话框,将其中“对没有标记为安全的ActiveX控件进行初始化和脚本运行”和“下载未签名的ActiveX控件”都设置为“提示”或者“启用” 。

2、vista下安装注册activex控件以及IE8的设置:

    首先,要把系统的UAC关掉,或者以administrator登录(方法1:使用命令提示符激活与禁用:进入开始菜单,在“开始搜索”框中输入“cmd”,在上方出现的项目“cmd.exe”右击,在出现的快捷菜单中选择“以管理员身份运行”,之后在出现的管理权限的命令提示符框中输入“net user Administrator /Active:yes”之后,回车退出。重新启动计算机或注销计算机,你就会发现Administrator账户出现在登录画面上了。同样,当你想要禁用Windows Vista中的Administrator账户的时候,只需像上面一样操作,只不过最后在命令行中输入的是“net user Administrator /Active:no”罢了。 方法2:使用系统管理工具激活与禁用:因为vista home premium中没有“本地用户和组”这一项,所以这个方法只针对64位的vista。进入开始菜单,在右列中选中计算机,右击弹出快捷菜单,点击“管理”,找到“计算机管理(本地)”-“系统工具”-“本地用户和组”-“用户”,在右侧双击“Administrator”,在弹出的窗口中把“账户已禁用”前的钩去掉。确定后注销或重新启动计算机,同样可在启动画面上发现Administrator账户的出现。类似的,当你要再次禁用Administrator账户时,只要把那个“账户已禁用”前的钩再次勾选上就可以了。在你用administrator登录,或者用其他用户登录后,用上述方法1,运行命令行窗口,然后把ocx或者dll控件,下载到本地,拷贝到system32目录下,在命令行窗口输入regsvr32 xxxxx即可。)

    其次,将你要安装控件的站点加入浏览器可信站点,并且将可信站点安全性降低,所有activex控件都要允许。或者在控制面板--程序与功能--打开或关闭windows功能中找到“安装activex控件”(大概是叫这个名字,因为同样home premium中没有这项)勾选上,可能是同样的效果。

    最后,最关键的一点,如果你是IE8的用户,那么你一定要用administrator登录,或者关闭uac后,打开浏览器,工具---internet选项---高级---启用内存保护帮助减少联机攻击,这个勾勾一定要去掉,我之前的ocx控件一直是注册成功的,但是就是运行不了,找了两天的原因,才发现是他在捣鬼。


参考1:http://blog.csdn.net/KOOK_OKKO/archive/2008/05

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值