日期:2014-05-17  浏览次数:20516 次

客户端获取MAC地址
1.通过IP地址,获取MAC地址。
  问题1:使用ADSL,动态IP。
  问题2:若有网关,也无法正确获取客户端IP。

2.通过WMI,获取MAC地址。

网上找到了如下代码:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title>WMI Scripting HTML</title>

  <script type="text/jscript" for="foo" event="OnCompleted(hResult,pErrorObject, pAsyncContext)" language="JScript">
  document.forms[0].txtMACAddr.value=unescape(MACAddr);
  document.forms[0].txtIPAddr.value=unescape(IPAddr);
  document.forms[0].txtDNSName.value=unescape(sDNSName);
  //document.formbar.submit();
  </script>

  <script type="text/jscript" for="foo" event="OnObjectReady(objObject,objAsyncContext)" language="JScript">
  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>

</head>
<body>
  <object classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6" id="locator" viewastext>
  </object>
  <object classid="CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223" id="foo">
  </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 method="POST" action="NICPost.asp" id="formfoo" name="formbar">
  <input type="text" name="txtMACAddr">
  <input type="text" name="txtIPAddr">
  <input type="text" name="txtDNSName">
  </form>
</body>
</html>

这段代码根本跑不起来啊。请各位大侠帮忙分析一下。

------解决方案--------------------
你写错了正确的是
service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');