转载:xrascal(横刀夺爱) 
第一步  
[开始]--[运行]--wmimgmt.msc--右击[WMI控件]--选择属性--选择安全--选择节点下的cimv2--单击安全设置--添加aspnet用户--启用远程控制  第二步  
修改machine.config文件中的<processModel>的"username"的值为"system"  
重新启动iis  第三步  
在vs中手动在解决方案中引用上添加"System.Management"命名空间  第四步  
加入代码  
using System.Management;  ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");  
  ManagementObjectCollection moc = mc.GetInstances();  
  foreach(ManagementObject mo in moc)  
  {  
   if((bool)mo["IPEnabled"] == true)  
    Response.Write("网卡的序列号为:"+ mo["MacAddress"].ToString());  
  }  
ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\"");  
disk.Get();  Response.Write("主板的序列号为: " + disk.GetPropertyValue("VolumeSerialNumber").ToString());  

解决方案 »

  1.   

    参考http://www.pcvc.net/category/content.asp?sendid=229(这个是获得本机MAC的。获得客户端的程序自己找吧) 建立一个读取MAC地址的DOS程序。
    用asp.net去调用(参考Process类)这个程序,得到返回的结果。
      

  2.   

    做一个ActiveX的控件放在网页上,用户浏览该网页时让用户安装它,在它的实现里添加读取用户网卡地址的代码,把它读取的结果传给服务器。
      

  3.   

    web客户端的MAC地址是很难得到的。局域网里还可以考虑。
      

  4.   

    我能成功取的lan的目标 mac。
    internet 上的正在测试。
      

  5.   

    安全问题,首先给客户端下载个Activex,然后,再读了