首页 > 建站教程 > JS、jQ、TS >  IE浏览器基于ActiveX获得本机内网ip和网卡物理地址正文

IE浏览器基于ActiveX获得本机内网ip和网卡物理地址

不得不说IE的ActiveX的确很强大,只是限制太多,而且由于安全性问题,导致很多情况下获取不到。下面这段代码是IE通过ActiveX获取本机的内网IP和网卡的物理地址:
function GetAdapterInfo() {
  var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
  var service = locator.ConnectServer("."); //连接本机服务器
  var properties = service.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration where IPEnabled=TRUE");
  //查询使用SQL标准
  var e = new Enumerator (properties);
  var msg="";
  for (;!e.atEnd();e.moveNext ())
  {
    var p = e.item ();
    msg+="Caption:" + p.Caption + " "; //网卡描述,也可以使用Description
    msg+="IP:" + p.IPAddress(0) + " ";//IP地址为数组类型,子网俺码及默认网关亦同
    msg+="MAC:" + p.MACAddress + " "; //网卡物理地址
  }
  return msg;
}
alert( GetAdapterInfo());
直接双击文件打开,就能获取,但是如果放在服务器环境去访问,可能会提示“Automation 服务器不能创建对象”的错误,是因为ActiveX的安全级别设置问题(服务器环境比本地环境更加严格),可以通过工具->Internet选项->安全,点击自定义级别,弹出的弹窗中,将于ActiveX有关的都启用即可: