C# .net获取电脑IP和MAC
C# .net获取电脑IP和MAC
/// <summary>
/// 取得用户客户端IP(穿过代理服务器取远程用户真实IP地址)
/// </summary>
public static string GetClientIP()
{
//如果使用代理,获取真实IP
string userip = string.Empty;
if (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != "")
{
userip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
else
{
userip = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
}
if (userip == null || userip == "")
{
userip = HttpContext.Current.Request.UserHostAddress;
}
return userip;
//HttpRequest Request = HttpContext.Current.Request;
//try
//{
// if (HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)
// {
// return HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
// }
// else
// {
// return HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
// }
//}
//catch { return "127.0.0.1"; }
}
//获取mac地址
public static string GetCustomerMac()
{
string IP = GetClientIP();
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();
//匹配mac地址
Match m = Regex.Match(dirResults, "\\w+\\-\\w+\\-\\w+\\-\\w+\\-\\w+\\-\\w\\w");
//若匹配成功则返回mac,否则返回找不到主机信息
if (m.ToString() != "")
{
return m.ToString();
}
else
{
return "找不到主机信息";
}
}