注意:支持IE,不支持chrome。 IE浏览器,亲测,可获取到mac等信息。
1、环境
系统:windows10 64位
IE版本:Internet Explorer 11.1016.18362.0
2、结果
代码在末尾,先看结果,如下:
js获取主机信息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.
微信公众号:程序员的一天
程序员的一天
网友评论