这取决于你的网络设置。但很可能不行。以下是关于以太网和IP的简要回顾。MAC地址是网卡的唯一地址,用于识别数据包属于网络段上哪个用户。您可以使用ARP获取IP地址的MAC地址,但仅当您在同一网络段时才能按预期运行。所以问题是,什么是网络段?这取决于您使用的技术,但以下是常见情况。整个无线网络是一个网络段。网络中的每个用户都可以通过以太网与其他用户交流。对于基于电线的网络,这取决于硬件。如果您拥有老式BNC或集线器,则具有所有用户的网络段。同样,每个用户都可以与任何其他用户交流。使用网络中的交换机时,网络段仅限于连接您到交换机的电缆。在这里,您只能通过以太网与交换机交流,其他用户至少需要IP地址。遗憾的是,在HTTP(建立在TCP / IP之上)的大多数情况下,您与用户99.99%的时间不在同一网络段中。您可以使用ARP,但只会获取第一个跳跃的MAC地址。更糟糕的是,根据您的硬件,您甚至可能不在基于以太网的IP网络中;例如ATM...
我认为在ASP.NET中没有办法做到这一点。 MAC是TCP数据包的属性,在HTTP层级别上没有数据包或MAC地址(例如,一个单独的HTTP请求可能由几个TCP数据包组成)。你可以尝试使用数据包嗅探器(如WireShark)捕获TCP数据包,然后分析它们以提取MAC地址并将其映射到HTTP请求。无论如何,除非用户与您的服务器在同一网络段内,否则您将无法获取任何有用的数据。更新:正如评论中指出的那样,我混淆了网络层级。 MAC地址是以太网帧的属性,而不是TCP数据包。 然而,结论仍然是正确的。