如何在aspx c#中获取客户端Ip地址或客户端/用户机器名



我使用登录表单,我想获得用户/客户端ip地址或用户机器名称。现在在包括stackoverflow在内的多个平台上提供了多种解决方案,我几乎尝试了所有的解决方案。我试过**HTTP_X_FORWARDED_FOR **, **REMOTE_ADDR **等,但他们返回我的服务器或公共ip,而不是客户端的ip。这些东西在本地机器上运行良好,但当部署在生产环境上时这些返回server/publicIP,而不是客户端IP。

如何获取客户端的ip地址??

您试过这种方法吗?

string ipAddress = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (!string.IsNullOrEmpty(ipAddress)) 
{
string[] addresses = ipAddress.Split(',');
if (addresses.Length != 0) 
{
ipAddress = addresses[0];
}
} 
else 
{
ipAddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
// remove any whitespace
ipAddress = ipAddress.Trim();

要获取客户端的私有IP地址,可以使用Dns.GetHostEntry()方法解析客户端机器的IP地址。

string ipAddress = string.Empty;
IPAddress[] ipAddresses = Dns.GetHostEntry(HttpContext.Current.Request.UserHostAddress).AddressList;
foreach (IPAddress addr in ipAddresses) {
if (addr.AddressFamily == AddressFamily.InterNetwork) {
ipAddress = addr.ToString();
break;
}
}

如果这对你有帮助,请竖起大拇指。

相关内容

  • 没有找到相关文章

最新更新