在做B/S结构的系统时,我们常常需要获取客户端的一些信息,如IP和MAC,以结合身份验证。要获取服务器端的MAC很容易,但是要获取客户端的MAC的地址确要花费一翻心思,通常的做法是调用Win32API或直接调用nbtstat命令,这样做有很多问题,而另一种方法就是直接用客户端脚本,我们这里用Javascript,这样做的好处是不需要服务器端进行处理,有客户端自行获取,传递到服务器端,且速度和可靠性都比在服务器端获取好。 具体实现的html和javascript如下: 复制代码 代码如下: WMI Scripting HTML <BR>document.forms[0].txtMACAddr.value=unescape(MACAddr); <BR>document.forms[0].txtIPAddr.value=unescape(IPAddr); <BR>document.forms[0].txtDNSName.value=unescape(sDNSName); <BR>//document.formbar.submit(); <BR> <BR>if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true) <BR>{ <BR>if(objObject.MACAddress != null && objObject.MACAddress != "undefined") <BR>MACAddr = objObject.MACAddress; <BR>if(objObject.IPEnabled && objObject.IPAddress(0) != null && objObject.IPAddress(0) != "undefined") <BR>IPAddr = objObject.IPAddress(0); <BR>if(objObject.DNSHostName != null && objObject.DNSHostName != "undefined") <BR>sDNSName = objObject.DNSHostName; <BR>} <BR> <BR>var service = locator.ConnectServer(); <BR>var MACAddr ; <BR>var IPAddr ; <BR>var DomainAddr; <BR>var sDNSName; <BR>service.Security_.ImpersonationLevel=3; <BR>service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration'); <BR>