在程序中,想获取客户端的IP。
因为客户端在一个局域网中,再通过防火墙和路由器出去的。
试了网上的一些方法,都不行,都不是客户端配置的IP,而是网络中某个网关的地址。
下面的方法不行:
//得到客户端IP
private string GetClientIP()
{
string result = this.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (result == null || result == String.Empty)
{
result = this.Request.ServerVariables["REMOTE_ADDR"];
}
if (result == null || result == String.Empty)
{
result = this.Request.UserHostAddress;
}
if (result == null || result == String.Empty)
{
result = "";
}
return result;
}
------解决方案--------------------------------------------------------
内网IP是得不到滴,死心吧
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
- C# code
#region 获得客户端IP private string GetClientIP() { string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (null == result || result == String.Empty) { result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; } if (null == result || result == String.Empty) { result = HttpContext.Current.Request.UserHostAddress; } return result; } #endregion
------解决方案--------------------------------------------------------
你要获取客户端的内网IP?
------解决方案--------------------------------------------------------
- C# code
string ip; //获取登录者的IP if (Context.Request.ServerVariables["HTTP_VIA"] != null) { ip = Context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString(); } else { ip = Context.Request.ServerVariables["REMOTE_ADDR"].ToString(); }
------解决方案--------------------------------------------------------
Context.Request.ServerVariables["REMOTE_ADDR"].ToString();
------解决方案--------------------------------------------------------
看看这个