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地址。我需要的是局域网的IP地址,而不是网络服务器的IP地址。
发布于 2014-11-10 20:12:16
使用HttpRequest.UserHostAddress
HttpContext.Current.Request.UserHostAddress;我使用上面的代码行,它返回客户端的IP地址。
发布于 2014-11-10 19:13:05
试试这个..。这对我很有效。
通过使用此方法,您可以获得客户端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;
}
}https://stackoverflow.com/questions/26842297
复制相似问题