Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在asp.net中获取客户端的计算机MAC地址和IP?_C# - Fatal编程技术网

C# 如何在asp.net中获取客户端的计算机MAC地址和IP?

C# 如何在asp.net中获取客户端的计算机MAC地址和IP?,c#,C#,我想在登录时获取客户端计算机的MAC地址和IP,以便唯一标识客户端计算机。您可以从请求对象属性获取客户端IP地址,如 Page.Request.UserHostAddress 除了使用WMI(其他答案已经指出)之外,似乎没有直接的方法可以获取客户端MAC地址。要获取用户的IP地址,可以使用Request.UserHostAddress或Request.ServerVariables[REMOTE\u ADDR] 获取MAC地址我不确定它是否如此简单。它不像IP地址那样可用于服务器ASP.NET

我想在登录时获取客户端计算机的MAC地址和IP,以便唯一标识客户端计算机。

您可以从请求对象属性获取客户端IP地址,如

Page.Request.UserHostAddress

除了使用WMI(其他答案已经指出)之外,似乎没有直接的方法可以获取客户端MAC地址。

要获取用户的IP地址,可以使用Request.UserHostAddress或Request.ServerVariables[REMOTE\u ADDR]

获取MAC地址我不确定它是否如此简单。它不像IP地址那样可用于服务器ASP.NET。据我所知,在用户机器上进行多次安装和安全提示后,您需要使用客户端脚本和ActiveX或Java小程序来获取这些信息


换句话说,通过Request.UserHostAddress获取IP地址。如果IP不足以满足您的需要,请避免使用MAC地址,并寻找其他解决方案。可能将其与浏览器用户代理字符串组合,而不是Request.ServerVariables[HTTP\u User\u Agent]或Request.UserAgent,但后者可能在较旧版本的.NET中不可用。

请参阅以下链接,可能它们对您有用。。。


如果计算机在NAT后面,您将根本无法获取MAC地址或本地IP地址;除非ISP为用户提供了一个静态的公共IP,并且正确地配置了将客户端计算机直接暴露在internet上的内容,否则您最好使用客户端计算机所在的路由器的IP。@DanHunex共享的链接有助于您的C代码在客户端上运行(如在桌面应用程序中),但在您的代码在web服务器上运行时不会从客户端检索此类信息。如果我的代码在web服务器上运行,是否有其他方法唯一标识客户端的计算机?当然。您可以将包含ID或GUID等文本的cookie添加到响应中,并假设客户端正在接受cookie,它将在将来的请求中向您发送该值。我使用了包含GUID的cookie,但24小时后该值会自行更改。cookie过期日期是可配置的。你只需要弄清楚如何指定一个更晚的到期日期,或者说“永不”。我不知道ASP.NET,但它应该很简单;这些链接用于获取服务器的MAC。