由于在需求中,有通过mac地址获取机构的需求,所以特地找了两个方法,以供使用(仅限IE)
方法一
<HTML>
<HEAD>
<TITLE>get MAC address</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
</HEAD>
<BODY>
<object id="locator" classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 viewastext></object>
<object id="foo" classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></object>
<script type="text/javascript">
var service = locator.ConnectServer();
var MACAddr;
service.Security_.ImpersonationLevel = 3;
service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
</script>
<script type="text/javascript" event=OnObjectReady(objObject,objAsyncContext) for=foo>
// 我自己在网上找了一个版本,在if条件中没有"objObject.DNSServerSearchOrder!=null"这个条件,获得值不对.
if (objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true) { // 获取MAC地址:需要条件"objObject.DNSServerSearchOrder!=null"
if (objObject.MACAddress != null && objObject.MACAddress != "undefined" && objObject.DNSServerSearchOrder != null)
MACAddr = objObject.MACAddress;
}
document.getElementById('mac').innerHTML = unescape(MACAddr);
</script>
<div id="mac">
</div>
</BODY>
</HTML>
方法二
<HTML>
<HEAD>
<TITLE>mac</TITLE>
<script type="text/javascript">
function load() {
var locator = new ActiveXObject("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".");
var properties = service.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled =True");
var e = new Enumerator(properties); {
var p = e.item();
var mac = p.MACAddress;
document.getElementById("mac").value = mac;
}
}
</script>
</HEAD>
<BODY onload="load()">
<input type="text" id="mac" name="mac" />
</BODY>
</HTML>
注意:需要ie中的ActiveX安全设置,具体可百度,ie8下亲测可用