[javascript] JavaScript의 MAC 주소

IE (ActiveX 개체)를 통해 사용자의 MAC 주소를 얻을 수 있다는 것을 알고 있습니다.

JavaScript를 사용하여 사용자의 MAC 주소를 얻는 방법이 있습니까?



답변

Javascript에서 직접 수행 할 수 있다면 개인 정보 / 보안 취약점이 될 것이라는 이전의 모든 답변에 동의합니다. 내가 생각할 수있는 두 가지가 있습니다.

  • Java 사용 (서명 된 애플릿 사용)
  • FF (및 일반적으로 Mozilla)에서 일반 JS보다 더 높은 권한을 갖는 서명 된 Javascript 사용 (하지만 설정하는 것은 상당히 복잡합니다)

답변

빠르고 간단한 대답은 아니오입니다.

Javascript는 상당히 높은 수준의 언어이며 이러한 종류의 정보에 액세스 할 수 없습니다.


답변

아니요. JavaScript에서는 MAC 주소를 얻을 수 없습니다. 주로 MAC 주소가 실행중인 컴퓨터를 고유하게 식별하므로 보안 취약점이되기 때문입니다.

이제 필요한 모든 것이 고유 한 식별자 인 경우 암호화 알고리즘을 사용하여 직접 만들고 쿠키에 저장하는 것이 좋습니다.

컴퓨터의 MAC 주소를 정말로 알아야하고 내부 애플리케이션 용으로 개발중인 경우 IE 용 ActiveX, Firefox 용 XPCOM (확장으로 설치됨)과 같은 외부 구성 요소를 사용하는 것이 좋습니다.


답변

아니. ActiveX가 할 수있는 이유는 ActiveX가 클라이언트의 컴퓨터에서 실행되는 작은 응용 프로그램이기 때문입니다.

JavaScript를 통해 이러한 정보에 액세스하는 것이 보안 취약점이라고 생각합니다.


답변

인트라넷 응용 프로그램 용이고 모든 클라이언트가 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>


답변