답변:
Javascript에서 직접 수행 할 수 있다면 개인 정보 / 보안 취약점이 될 것이라는 이전의 모든 답변에 동의합니다. 내가 생각할 수있는 두 가지가 있습니다.
빠르고 간단한 대답은 아니오입니다.
Javascript는 상당히 높은 수준의 언어이며 이러한 종류의 정보에 액세스 할 수 없습니다.
아니요. JavaScript에서는 MAC 주소를 얻을 수 없습니다. 주로 MAC 주소가 실행중인 컴퓨터를 고유하게 식별하므로 보안 취약점이되기 때문입니다.
이제 필요한 모든 것이 고유 한 식별자 인 경우 암호화 알고리즘을 사용하여 직접 만들고 쿠키에 저장하는 것이 좋습니다.
컴퓨터의 MAC 주소를 정말로 알아야하고 내부 애플리케이션 용으로 개발중인 경우 IE 용 ActiveX, Firefox 용 XPCOM (확장으로 설치됨)과 같은 외부 구성 요소를 사용하는 것이 좋습니다.
인트라넷 응용 프로그램 용이고 모든 클라이언트가 DHCP를 사용하는 경우 DHCP 서버에서 주어진 IP 주소에 대한 MAC 주소를 쿼리 할 수 있습니다.
나는 같은 문제를 찾고 있었고 다음 코드를 우연히 발견했습니다.
클라이언트 MAC 주소 (웹)를 얻는 방법 :
클라이언트 MAC 주소를 얻으려면 Microsoft의 JavaScript 및 Active X 제어에 의존 할 수 있습니다. Active X가 IE에 대해 활성화 된 경우에만 IE에서 작동합니다. ActiveXObject는 Firefox에서 사용할 수 없으므로 firefox에서 작동하지 않으며 IE에서 제대로 작동합니다.
이 스크립트는 IE 전용입니다.
function showMacAddress() {
var obj = new ActiveXObject("WbemScripting.SWbemLocator");
var s = obj.ConnectServer(".");
var properties = s.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration");
var e = new Enumerator(properties);
var output;
output = '<table border="0" cellPadding="5px" cellSpacing="1px" bgColor="#CCCCCC">';
output = output + '<tr bgColor="#EAEAEA"><td>Caption</td><td>MACAddress</td></tr>';
while (!e.atEnd()) {
e.moveNext();
var p = e.item();
if (!p) continue;
output = output + '<tr bgColor="#FFFFFF">';
output = output + '<td>' + p.Caption; +'</td>';
output = output + '<td>' + p.MACAddress + '</td>';
output = output + '</tr>';
}
output = output + '</table>';
document.getElementById("box").innerHTML = output;
}
showMacAddress();
<div id='box'></div>