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

本文介绍了如何在IE浏览器中使用JavaScript获取Windows系统的主机名、MAC地址和IP信息。内容包括测试环境(Windows 10 + IE 11)、执行结果、验证步骤以及详细代码。由于浏览器安全限制,操作时需要用户授权。

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

1、环境

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

2、结果

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

js获取mac等主机信息

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>

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

点击"允许",
点击'允许'
点击"是",
在这里插入图片描述

公众号原文

简书原文

END.

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

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员的一天

~呀哈,感谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值