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。
答案 0 :(得分:0)
答案 1 :(得分:-2)
试试这个.. 这对我有用。
通过使用此方法,您可以获取客户端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;
}
}