118

IE (ActiveX オブジェクト) を介してユーザーの MAC アドレスを取得できることはわかっています。

JavaScript を使用してユーザーの MAC アドレスを取得する方法はありますか?

4

7 に答える 7

70

Javascriptから直接これを行うことができれば、プライバシー/セキュリティの脆弱性になるという以前のすべての回答に同意します. 私が考えることができる2つのことがあります:

  • Java の使用 (署名付きアプレットを使用)
  • FF (および一般的に Mozilla) では、通常の JS よりも高い権限を取得する署名付き Javascript を使用します (ただし、セットアップはかなり複雑です)。
于 2008-08-14T06:21:12.150 に答える
64

迅速かつ簡単な答えはノーです。

Javascript は非常に高度な言語であり、この種の情報にはアクセスできません。

于 2008-08-06T13:45:00.707 に答える
39

いいえ、JavaScriptでMACアドレスを取得することはできません。これは主に、MACアドレスが実行中のコンピューターを一意に識別するため、セキュリティの脆弱性になるためです。

一意の識別子だけが必要な場合は、暗号化アルゴリズムを使用して自分で作成し、Cookieに保存することをお勧めします。

コンピューターのMACアドレスを本当に知る必要があり、内部アプリケーション用に開発している場合は、外部コンポーネントを使用してそれを行うことをお勧めします。IEの場合はActiveX、Firefoxの場合はXPCOM(拡張機能としてインストール)。

于 2008-08-11T16:34:49.840 に答える
7

これがイントラネット アプリケーション用であり、すべてのクライアントが DHCP を使用している場合は、特定の IP アドレスの MAC アドレスを DHCP サーバーに問い合わせることができます。

于 2008-08-06T13:51:52.267 に答える
7

いいえ。ActiveX がそれを実行できる理由は、ActiveX がクライアントのマシン上で実行される小さなアプリケーションだからです。

JavaScriptを介してそのような情報にアクセスすると、セキュリティ上の脆弱性が生じると思います.

于 2008-08-06T15:38:50.897 に答える
5

私は同じ問題を探していて、次のコードに出くわしました。

クライアントの MAC アドレスを取得する方法 (Web):

クライアントの MAC アドレスを取得するには、JavaScript と Microsoft の Active X コントロールに頼ることができます。これは、IE で Active X が有効になっている場合にのみ 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>

于 2018-01-05T11:22:54.310 に答える