js獲取客戶端MAC地址


最近遇到一個需求,醫院要求呼叫中心賬號必須對應MAC地址,也就是說該MAC地址必須和呼叫中心賬號對應才可使用,這可就難道我了,這需求就要求每次都判斷用戶登錄的電腦MAC地址是否有呼叫中心賬號,當然只針對IE瀏覽器,畢竟其他瀏覽器是直接就給禁止此功能的。

那么首先問題一:如何才能通過頁面訪問得到本地MAC地址

問題二:每台電腦上都有多個MAC地址,那么應該選用哪一個MAC地址

MAC地址是每台電腦鏈接網絡的物理地址,是唯一標識,想要從瀏覽器獲取電腦的信息,那么就需要ActiveX,所以其他瀏覽器是沒有辦法通過js獲取MAC地址的。

方法一:(推薦)需要客戶端設置將服務器地址加入受信任站點

<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>  

 

方法二:

<!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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM