如何获取 Mac 客户端 Mac 的地址或 IPv4 地址以在 ASP.net 核心 v3.1 中唯一标识机器

How to get Mac Address OR IPv4 address of Client Machine to uniquely identify machine in ASP.net core v3.1

我想在客户端从不同的 machine(就像 Google)登录时执行一次性密码 (OTP) 设备验证。

简而言之,每当用户在登录期间更改其设备时,它应该为每个设备询问一次 OTP,因此下次他们使用该设备时,不应询问 OTP,而应直接询问已验证设备的密码.

是否可以在ASP.NET CORE v3.1 中获取客户端machine 的IP 地址或mac 地址?我已经阅读了关于它的各种文章,他们建议将 cookie 与 usersID 和 GUID 组合使用。如果用户从不同的 machine 或设备登录,是否有任何其他方法可以跟踪?

通常处理此问题的方式是设置 cookie。在提示用户输入第二个因素之前,您检查该 cookie 是否存在。如果是,则用户可以继续使用,因此您可以跳过它。

您不能通过 MAC 地址或 IP 执行此操作。您无法获取客户端的 MAC 地址,因为此信息永远不会暴露给服务器。 IP 地址不可靠,因为它通常由用户的 ISP 动态分配,并且可能因用户而异。此外,远程 IP 可能会被欺骗,因此您永远不要相信它。