在很多记录日志的时候,通常也会记录电脑的mac地址,C#有很多种获取mac地址的方式,我个人觉得比较简单的方式就是通过NetworkInterface获取MAC地址,因为代码简单而且还可以获取多个mac地址。
下面的方法是获取第一个mac地址,毕竟有些电脑会有多个网络接口。
#region 通过NetworkInterface获取MAC地址
/// <summary>
/// 通过NetworkInterface获取MAC地址
/// </summary>
/// <returns></returns>
public static string GetMacByNetworkInterface()
{
try
{
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface ni in interfaces)
{
return BitConverter.ToString(ni.GetPhysicalAddress().GetAddressBytes());
}
}
catch (Exception)
{
}
return "00-00-00-00-00-00";
}
#endregion
注意:有一种方式通过SendARP读取MAC地址,测试时在本机是可以获取,但是发布到服务器上,是无法获取mac地址,而且还很耗时,至少要消耗3s的时间,刚开始的时候就是采用这种方式,测试项目的时候,发现提交保存数据都很慢,还以为是日志没有异步保存,后来才发现是这个问题,目前不知道什么原因。