查看: 2936|回复: 3

[有事请教] 请问各位大神,怎样使用JS读取电脑的物理地址?

[复制链接]
梦石
0
星屑
848
在线时间
250 小时
注册时间
2013-10-4
回帖
78
发表于 2018-11-4 21:50:56 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
请问各位大神,怎样使用JS读取电脑的物理地址?想做个绑定功能
梦石
0
星屑
3922
在线时间
1198 小时
注册时间
2016-8-9
回帖
2355

开拓者

发表于 2018-11-5 16:54:28 | 显示全部楼层
本帖最后由 白嫩白嫩的 于 2018-11-5 16:57 编辑

网上找的,不知道能不能帮到楼主,如果做到了绑定,还请回帖多多指教喔


最近遇到一个需求,医院要求呼叫中心账号必须对应MAC地址,也就是说该MAC地址必须和呼叫中心账号对应才可使用,这可就难道我了,这需求就要求每次都判断用户登录的电脑MAC地址是否有呼叫中心账号,当然只针对IE浏览器,毕竟其他浏览器是直接就给禁止此功能的。

那么首先问题一:如何才能通过页面访问得到本地MAC地址

问题二:每台电脑上都有多个MAC地址,那么应该选用哪一个MAC地址

MAC地址是每台电脑链接网络的物理地址,是唯一标识,想要从浏览器获取电脑的信息,那么就需要ActiveX,所以其他浏览器是没有办法通过js获取MAC地址的。

方法一:(推荐)需要客户端设置将服务器地址加入受信任站点

[pre lang="javascript"]<html>  

<head>  

<title>获取客户端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">  

</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>  [/pre]



方法二:


[pre lang="javascript"]<!DOCTYPE html>

<html>  

<head>  

   <title>获取电脑硬件信息</title>   

   <meta name="keywords" content="keyword1,keyword2,keyword3">

    <meta name="description" content="this is my page">

    <meta name="content-type" content="text/html; charset=GBK">

  </head>  

  <body>

   <script id="clientEventHandlersJS" language="javascript" charset="utf-8">

http://www.w3school.com.cn/htmldom/dom_obj_navigator.asp

/******************************************以上为浏览器信息,以下为pc信息************************************************/ try {  var locator = new ActiveXObject ("WbemScripting.SWbemLocator");

  var service = locator.ConnectServer(".");

//获取网络连接信息

function ipinfo(){  

  var properties = service.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE");  

  var e = new Enumerator (properties);

   var info="<table border=1>";  

  info+="<tr bgcolor='#CDEDED' style='font-weight: bold;' >

<td width='450'>网络连接信息:</td></tr>";  

  var i=1;   

for (;!e.atEnd();e.moveNext ()){  

   var p = e.item ();   

  info+="<tr style='color: red'><td >MAC地址"+i+":" + p.MACAddress + "</td></tr>";     info+="<tr style='color: red'><td >IP地址"+i+":" + p.IPAddress(0) + "</td></tr>";     i++;    }

   info+="</table>";    return info;   }

function pcInfo() {//所有信息     

var info=ipinfo();   

/* info+=disk();     info+=raminfo();   

  info+=mainBoard();   

info+=ipinfo();   

info+=keyBoardInfo();   

info+=RomInfo();  

   info+=softDisk(); */       document.getElementById('elInfo').innerHTML=info;   

return info;   } } catch (e) {  document.write(e); }



/******************************************以上为pc信息************************************************/

</script>

</head>

<body >   <!--  <INPUT id="Button1" type="button" value="浏览器所有信息" name="Button1" language=javascript onclick="allinfo()">  -->

<INPUT id="Button1" type="button" value="客户端pc信息" name="Button1" language=javascript onclick="pcInfo()">

<div id="elInfo" >

</div>   </body> </html>[/pre]
酸酸甜甜就④哇噢
回复

使用道具 举报

梦石
0
星屑
22584
在线时间
2605 小时
注册时间
2015-7-4
回帖
918
发表于 2018-11-5 22:08:20 | 显示全部楼层
绑定MAC地址太霸道了,再说也不是不能破解,不如采用联网检测,服务器上数据库的东西要修改就难如登天了。

点评

还不会联网这种高阶技能  发表于 2018-11-7 00:10
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部