js获取主机mac等信息【亲测有效】-- 附执行结果&代码

注意:支持IE,不支持chrome。 IE浏览器,亲测,可获取到mac等信息。

1、环境

系统:windows10 64位
IE版本:Internet Explorer 11.1016.18362.0

2、结果

代码在末尾,先看结果,如下:

js获取主机mac等信息【亲测有效】-- 附执行结果&代码_第1张图片

3、验证

通过windows下cmd命令,验证:

  • 查看主机名:
# hostname查看主机名

C:\Users\程序员的一天>hostname
DESOOP-FVKBAPV
  • 查看当前用户名:
C:\Users\程序员的一天>echo %username%
程序员的一天
  • 查看mac和ip:
C:\Users\程序员的一天>ipconfig -all
无线局域网适配器 WLAN:

   连接特定的 DNS 后缀 . . . . . . . :
   物理地址. . . . . . . . . . . . . : 0A-6C-5A-1F-2E-AC
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是
   IPv4 地址 . . . . . . . . . . . . : 192.168.0.11(首选)

与运行结果对比,可以看到是一样的:

MAC地址: 0A-6C-5A-1F-2E-AC
IP地址: 192.168.0.11
计算机名: DESOOP-FVKBAPV
当前用户名: 程序员的一天

有的读者可能不知道什么是计算机名,这里解释一下。
计算机名:简单解释就是这台机器的物理名称,而不是你开机输入的那个用户名。

4、js代码:

新建一个mac.html文件,下面代码复制进去。将mac.html拖入ie浏览器即可。

(作为后端的我,被迫研究js,太难了…大家点个赞吧~~哈哈)

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>js获取mac等主机信息</title>
</head>

<body>
<object classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6" id="locator" style="display:none;visibility:hidden"></object>
<object classid="CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223" id="foo" style="display:none;visibility:hidden"></object> 
<form name="myForm">
<br/>MAC地址:<input type="text" name="macAddress">
<br/>IP地址:<input type="text" name="ipAddress">
<br/>计算机名:<input type="text" name="hostName">
<br/>当前用户名:<input type="text" id="userName">
</form>
</body>
</html>

<script language="javascript">
var sMacAddr="";
var sIPAddr="";
var sDNSName="";
var service = locator.ConnectServer();
service.Security_.ImpersonationLevel=3;
service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
</script>
<script FOR="foo" EVENT="OnObjectReady(objObject,objAsyncContext)" LANGUAGE="JScript">
         if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true){
     
		 
                           if(objObject.IPEnabled && objObject.IPAddress(0) !=null && objObject.IPAddress(0) != "undefined")
                                         sIPAddr = objObject.IPAddress(0);
                           if(objObject.MACAddress != null &&objObject.MACAddress != "undefined")
										 sMacAddr = objObject.MACAddress;
                           if(objObject.DNSHostName != null &&objObject.DNSHostName != "undefined")
                                         sDNSName = objObject.DNSHostName;
										 
          }
</script>

<script FOR="foo" EVENT="OnCompleted(hResult,pErrorObject, pAsyncContext)" LANGUAGE="JScript">
myForm.macAddress.value=sMacAddr;
myForm.ipAddress.value=sIPAddr;
myForm.hostName.value=sDNSName;
</script>

<script>
var WshShell =new ActiveXObject("WScript.Shell");
x=document.getElementById("userName");  // 找到元素
x.value=WshShell.ExpandEnvironmentStrings("%USERNAME%");    // 改变内容
</script>

注意事项:
由于浏览器安全限制,会有两个弹窗,允许操作就好。

点击"允许",
点击'允许'
点击"是",
js获取主机mac等信息【亲测有效】-- 附执行结果&代码_第2张图片

公众号原文

简书原文

END.

我的部分文章会首发在公众号上。微信读者,可以搜一搜:【程序员的一天】,感兴趣的朋友可以关注,支持一下,谢谢!

每一个关注点赞,都是极大的支持和鼓励。最后,非常感谢阅读。

你可能感兴趣的:(web,javascript,javascript,mac)