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コントロールの初期化とスクリプトの実行」を有効にする