Chinaunix首页 | 论坛 | 博客
  • 博客访问: 175996
  • 博文数量: 49
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 337
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-23 15:51
文章分类

全部博文(49)

文章存档

2014年(23)

2013年(26)

我的朋友

分类: JavaScript

2014-03-27 06:42:16

js获取客户端网卡的、的方法。
代码:

  1. <html>
  2. <head>
  3. <title>js获取客户端网卡的IP地址与MAC地址---</title>
  4. </head>
  5. <body>
  6. <object classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6" id="locator" style="display:none;visibility:hidden"></object>
  7. <object classid="CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223" id="foo" style="display:none;visibility:hidden"></object>
  8. <form name="myForm">
  9. <br/>MAC地址:<input type="text" name="macAddress">
  10. <br/>IP地址:<input type="text" name="ipAddress">
  11. <br/>主机名:<input type="text" name="hostName">
  12. </form>
  13. </body>
  14. </html>
  15. <script language="javascript">
  16. var sMacAddr="";
  17. var sIPAddr="";
  18. var sDNSName="";
  19. var service = locator.ConnectServer();
  20. service.Security_.ImpersonationLevel=3;
  21. service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
  22. </script>
  23. <script FOR="foo" EVENT="OnObjectReady(objObject,objAsyncContext)" LANGUAGE="JScript">
  24. if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true){
  25. if(objObject.IPEnabled && objObject.IPAddress(0) !=null && objObject.IPAddress(0) != "undefined" && objObject.DNSServerSearchOrder!=null)
  26. sIPAddr = objObject.IPAddress(0);
  27. if(objObject.MACAddress != null &&objObject.MACAddress != "undefined")
  28. sMacAddr = objObject.MACAddress;
  29. if(objObject.DNSHostName != null &&objObject.DNSHostName != "undefined")
  30. sDNSName = objObject.DNSHostName;
  31. }
  32. </script>


  33. <script FOR="foo" EVENT="OnCompleted(hResult,pErrorObject, pAsyncContext)" LANGUAGE="JScript">
  34. myForm.macAddress.value=sMacAddr;
  35. myForm.ipAddress.value=sIPAddr;
  36. myForm.hostName.value=sDNSName;
  37. </script>
以上代码源自网络,有修改。
原因是比如你笔记本有多张网卡,会出现获取你未联网或者禁用网卡的信息。

解决办法:加限制条件:
objObject.DNSServerSearchOrder!=null 
加上这个限制条件后,就能取到联网客户端的网卡IP地址了。 
不过还有个问题就是只能限制IE浏览器,而且Activex必须要全部启用。
阅读(3028) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~