2013年9月6日金曜日

Javascript Asp.net クライアントのMACアドレスを取得

  • このエントリーをはてなブックマークに追加


JavaScriptでクライアントのMacアドレスを取得してWebサーバーに渡す方法をメモします。

default.apxに以下のコードを追加

<asp:HiddenField ID="hdnResultValue" Value="0" runat="server" />
<asp:Button ID="btn1" runat="server"  OnClientClick="GetMacAddr();" onclick="Btn1_Click" Text="GetMAC"/>

<script type="text/javascript">

  function GetMacAddr() {
        //This function requires following option to be enabled without prompting
        //In Internet Options for IE 5.5 and up
        //Tab Security (Local Internet Sites)
        //Custom Level button
        //"Initialize and script ActiveX control not marked as safe." option enabled
        try {
            var locator = new ActiveXObject("WbemScripting.SWbemLocator");
            var service = locator.ConnectServer(".");

            //Get properties of the network devices with an active IP address
            var properties = service.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration" +
            " WHERE IPEnabled=TRUE");

            var e = new Enumerator(properties);

            //Take first item from the list and return MACAddress
            var p = e.item(0);
        }
        catch (exception) {
            //alert('Add your domain to Trusted Sites.');
            window.location = "about:blank";
        }
        document.getElementById("hdnResultValue").value = p.MACAddress;
        //return p.MACAddress;
    }
</script>

 

C#の方でhdnResultValueに対して操作する。

protected void Btn1_Click(object sender, EventArgs e)
   {
           string macAddr = hdnResultValue.Value.Replace(":", "");
           label2.Text = hdnResultValue.Value;
   }

※注意
・IEでしか動かない。

・IE⇒インタネットオプション⇒セキュリティでサイトを信頼済みサイトに追加し、信頼済みサイトのセキュリティレベル設定で「スクリプトを実行しても安全だとマークされていないActiveXコントロールの初期化とスクリプトの実行」を有効にする

image

この記事がお役にたちましたらシェアをお願いします:)

  • このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿