日期:2014-05-17  浏览次数:20450 次

用户登录时获取本机IP地址和MAC地址
用户登录时获取本机IP地址和MAC地址,并且验证是否和sql数据库中的IP地址相同,相同登录。
 protected string GetIP() //获取本地IP 
  {
  IPHostEntry ipHost = Dns.Resolve(Dns.GetHostName());
  IPAddress ipAddr = ipHost.AddressList[0];
  return ipAddr.ToString();
  }

请各位给个获取本机MAC地址的方法。

------解决方案--------------------
你这代码是在服务器端运行的,每个人的结果都一样的。

你能得到的是客户端ip,
------解决方案--------------------
ManagementClass MC = new ManagementClass("Win32_NetworkAdapterConfiguration");
這個WMI對象是你本机的,也就是服务器的,
这段代码是获取服务器的.

如果是ASP.NET程式,不使用ActiveX,仅能从request,Context获取客户端的IP,而且这个IP,在没有代理的情况下是客户端IP,如果客户端使用了Proxy连入的话,获取的是Proxy Server的IP

而使用ActiveX抓去客户端的Mac地址的方法,并不推荐,有安全性问题,而且不是Any Browser通用.
------解决方案--------------------
string strClient = System.Web.HttpContext.Current.User.Identity.Name.Trim()
具体看 System.Web.HttpContext.Current.User下面的属性
------解决方案--------------------
HttpRequest 下面有个UserHostAddress 属性 看能读到IP不
------解决方案--------------------
IP = Request.UserHostAddress;
Mac是获取不到的,放弃吧骚年
------解决方案--------------------
/// <summary>
/// 获取网卡MAC地址
/// 注意:当计算机未联网或网卡被禁用时无法获取MAC地址
/// </summary>
/// <returns></returns>
public static string GetMacAddress()
{
string strMAC = "";
try
{
ManagementClass mcMAC = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection mocMAC = mcMAC.GetInstances();

foreach (ManagementObject m in mocMAC)
{
if ((bool)m["IPEnabled"])
{
strMAC = m["MacAddress"].ToString().Trim();
break;
}
}
mocMAC.Dispose();
mcMAC.Dispose();
}
catch
{
strMAC = "";
}

return strMAC;
}