WEB开发网
开发学院网页设计JavaScript 通过JavaScript以及ActiveX控件获得客户端的机器名... 阅读

通过JavaScript以及ActiveX控件获得客户端的机器名

 2010-09-14 13:41:39 来源:WEB开发网   
核心提示: 似乎是基于某些安全的因素,Framwork并没有给出可以获得客户端机器信息的类及方法.如果这是真的,那么我们便只能通过客户端的JavaScript代码以及ActiveX控件来实现这一功能了.在努力搜寻了一段时间之后,我找到了如下的解决方案:1<html>2<head>

似乎是基于某些安全的因素,Framwork并没有给出可以获得客户端机器信息的类及方法.如果这是真的,那么我们便只能通过客户端的JavaScript代码以及ActiveX控件来实现这一功能了.在努力搜寻了一段时间之后,我找到了如下的解决方案:

 1<html>
 2<head>
 3    <title>WMI Scripting HTML</title>
 4    <script FOR="foo" EVENT="OnCompleted(hResult,pErrorObject, pAsyncContext)" LANGUAGE="JScript">
 5         document.forms[0].txtMACAddr.value=unescape(MACAddr);
 6         document.forms[0].txtIPAddr.value=unescape(IPAddr);
 7         document.forms[0].txtDNSName.value=unescape(sDNSName);
 8    </script>
 9
10    <script FOR="foo" EVENT="OnObjectReady(objObject,objAsyncContext)" LANGUAGE="JScript">
11        if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true)
12        {
13            if(objObject.MACAddress != null && objObject.MACAddress != "undefined")
14                MACAddr = objObject.MACAddress;
15
16            if(objObject.IPEnabled && objObject.IPAddress(0) != null && objObject.IPAddress(0) != "undefined")
17                IPAddr = objObject.IPAddress(0);
18
19            if(objObject.DNSHostName != null && objObject.DNSHostName != "undefined")
20                sDNSName = objObject.DNSHostName;
21        }
22    </script>
23
24</head>
25<body>
26    <object classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6" id="locator" VIEWASTEXT></object>
27    <object classid="CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223" id="foo"></object>
28
29    <script LANGUAGE="JScript">
30        var service = locator.ConnectServer();
31        var MACAddr ;
32        var IPAddr ;
33        var DomainAddr;
34        var sDNSName;
35        service.Security_.ImpersonationLevel=3;
36        service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
37    </script>
38
39    <form method="POST" action="NICPost.asp" id="formfoo" name="formbar">
40        <input type="text"  name="txtMACAddr">
41        <input type="text"  name="txtIPAddr">
42        <input type="text"  name="txtDNSName">
43    </form>
44</body>
45</html>
46

测试后发现,这一解决方案不仅能够获得客户端的机器名,同时还给出了客户端机器的MAC地址,以及客户端机器所在的内网IP地址(比如192.168.0.100).只是在运行该页面的时候,浏览器会给出不安全ActiveX控件的提示,并允许客户端禁止ActiveX控件的运行,不过我相信,这已经可以满足大部分需要用到这一功能的情景了.

上一页  1 2 

Tags:通过 JavaScript 以及

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接