积极答复者
用ASP.NET如何获取客户端的MAC地址??

问题
-
用ASP.NET(C#)写了一个验证用户登录的页面,需要获取客户端的MAC地址,然后跟数据库中的记录对比,通过后才能进一步登陆,可是现在无法获取到客户端的MAC地址,网上查了很多代码都不行,找到了下面的代码,可是通过测试发现,只有偶然能获取到,基本也没用,各位高手谁有解决办法?不用activeX,只用.net该如何获取呢?
public string getMac(string IP) { string dirResults = ""; ProcessStartInfo psi = new ProcessStartInfo(); Process proc = new Process(); psi.FileName = "nbtstat"; psi.RedirectStandardInput = false; psi.RedirectStandardOutput = true; psi.Arguments = "-a " + IP; psi.UseShellExecute = false; proc = Process.Start(psi); dirResults = proc.StandardOutput.ReadToEnd(); proc.WaitForExit(); //return dirResults.ToString(); //匹配mac地址 Match m = Regex.Match(dirResults, "\\w+\\-\\w+\\-\\w+\\-\\w+\\-\\w+\\-\\w\\w"); //若匹配成功则返回mac,否则返回找不到主机信息 if (m.ToString() != "") { return m.ToString(); } else { return "无法获取MAC地址!"; } }
答案
-
你好!
如果客户端与服务器是在一个局域网中,可以使用 .Net 提供的类获取到 MAC。但一但过了路由器,就必需使用 ActiveX 来获取 MAC 地址了。使用 ActiveX 会受浏览器安全机制的限制,建议还是使用 IP 的方式。
知识改变命运,奋斗成就人生!- 已标记为答案 KeFang Chen 2010年4月9日 2:18
- 已标记为答案 KeFang Chen 2010年4月9日 2:18
-
- 已标记为答案 KeFang Chen 2010年4月9日 2:15
全部回复
-
你好!
如果客户端与服务器是在一个局域网中,可以使用 .Net 提供的类获取到 MAC。但一但过了路由器,就必需使用 ActiveX 来获取 MAC 地址了。使用 ActiveX 会受浏览器安全机制的限制,建议还是使用 IP 的方式。
知识改变命运,奋斗成就人生!- 已标记为答案 KeFang Chen 2010年4月9日 2:18
- 已标记为答案 KeFang Chen 2010年4月9日 2:18
-
- 已标记为答案 KeFang Chen 2010年4月9日 2:15