/****************获取服务器IP和MAC地址*********************************/
string strHostName = System.Net.Dns.GetHostName();// 计算机名
string clientIPAddress = System.Net.Dns.GetHostAddresses(strHostName).GetValue(0).ToString(); // IP地址
string mac = GetClientMacAddress(strHostName); //获取MAC
public static string GetClientMacAddress(string strHostName)
{
// 获得本机局域网IP地址
System.Net.IPAddress addr = new System.Net.IPAddress(Dns.GetHostByName(strHostName).AddressList[0].Address);
string IP = addr.ToString();
#region 根据ip获取mac
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 "找不到主机信息";
}
#endregion
}
/****************获取客户端IP和MAC地址*********************************/
string clientIPAddress = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (clientIPAddress == null || clientIPAddress == "")
clientIPAddress = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];// IP地址
System.Net.IPHostEntry ipInfor = System.Net.Dns.GetHostByAddress(clientIPAddress);//获取计算机名
string strHostName = ipInfor.HostName;
string mac = GetClientMacAddress(clientIPAddress); //获取MAC地址
public static string GetClientMacAddress(string IP)
{
#region 根据ip获取mac
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 "找不到主机信息";
}
#endregion
}