获取客户端外部 IP 或客户端局域网 IP
本文关键字:IP 客户端 局域网 外部 获取 | 更新日期: 2023-09-27 18:29:47
public static string GetClientExternalIp()
{
HttpContext context = HttpContext.Current;
string ipAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (!string.IsNullOrEmpty(ipAddress))
{
string[] addresses = ipAddress.Split(',');
if (addresses.Length != 0)
{
return addresses[0];
}
}
return context.Request.ServerVariables["REMOTE_ADDR"];
}
我正在努力解决上面的代码片段,我想获取客户端外部 IP 地址,就像您在浏览到 http://checkip.dyndns.org 时看到的那样,但上面的代码片段返回服务器的 IP 地址。我需要的是客户端连接的 LAN 的 IP 地址,而不是 Web 服务器 IP。
use HttpRequest.UserHostAddress
HttpContext.Current.Request.UserHostAddress;
我使用上面的代码行,它返回客户端 IP 地址。
试试这个。这对我有用。
通过使用此方法,可以获取客户端 IP 地址,而不是服务器 IP。
public static string GetClientIP()
{
try
{
string VisitorsIPAddress = string.Empty;
if (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null)
{
VisitorsIPAddr = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
}
else if (HttpContext.Current.Request.UserHostAddress.Length != 0)
{
VisitorsIPAddress = HttpContext.Current.Request.UserHostAddress;
}
return VisitorsIPAddress;
}
catch (Exception)
{
return null;
}
}