【发布时间】:2019-02-06 07:40:57
【问题描述】:
我正在尝试使用 c# Web API 获取客户端的唯一机器地址。 我在本地服务器上运行以下代码时使用网络接口获取 MAC 地址,它运行良好。但是当我将它部署在开发服务器上时,我得到了一些奇怪的相同地址。
下面是我用来获取 MAC 地址的代码。
public string GetMacAddress()
{
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
String macAddress = string.Empty;
foreach (NetworkInterface adapter in nics)
{
if (macAddress == String.Empty)
{
IPInterfaceProperties properties = adapter.GetIPProperties();
macAddress = adapter.GetPhysicalAddress().ToString();
}
}
return macAddress;
}
注意:如果有任何可能的方法来唯一标识用户机器。
【问题讨论】:
-
请添加更多信息。您如何“使用”网络接口。服务器上有多个接口吗?你想做什么?用户是谁?服务器的网卡或连接到它的任何人?另请注意,MAC 地址来自最后一个网络跃点,因此可能是您的路由器。一些代码会很好。
-
mac 地址只与本地链接真正相关。您的任何用户将计算机挂在与您的服务器相同的交换机上的可能性有多大?
-
请提供失败的示例代码,以及您看到的错误消息。
-
IP 使用 IP 地址,而不是 MAC 地址。 SO 不知道您的 MAC 地址,但它确实知道您的IP。你想做什么?如果你想记录请求,IP 地址已经被 Web 服务器记录了
-
@kdmurray 我已经附上了代码,请仔细阅读。
标签: c# asp.net-core mac-address ef-core-2.0