问题描述
以前是用["REMOTE_ADDR"]和["HTTP_X_FORWARDED_FOR"]来取用户的IP。详细代码就不写了,用过的都知道。这次做的项目,用这个取到的都是服务器的IP。网上找了很多资料,说是服务器网关设置的问题。服务器网关我设不了。有没有别的办法可以解决???
解决方案
解决方案二:
///<summary>///获得当前页面客户端的IP///</summary>///<returns>当前页面客户端的IP</returns>publicstaticstringGetIP(){stringresult=HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];if(string.IsNullOrEmpty(result))result=HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];if(string.IsNullOrEmpty(result))result=HttpContext.Current.Request.UserHostAddress;if(string.IsNullOrEmpty(result)||!Utils.IsIP(result))return"127.0.0.1";returnresult;}
解决方案三:
没有就没有了
解决方案四:
解决方案五:
我说了用["REMOTE_ADDR"]和["HTTP_X_FORWARDED_FOR"]来取取的是服务器的IP有没有别的办法
解决方案六:
不是还有一个?HttpContext.Current.Request.UserHostAddress
解决方案七:
Request.UserHostAddress;
解决方案八:
这个ASP里可以用吗?
解决方案九:
ISA防火墙的问题由于你的服务器安装过ISA的防火墙,之前有人出过这种问题
解决方案十:
客户端IP准不准要看网络连接的形式,如果是在家里用无线路由器上网,IP地址是192.168.x.x,但实际上是用的外网IP.在服务端也是,如果服务器放在路由器后面,得到的客户端IP就只是自己的路由器IP地址.
解决方案十一:
//把IP地址记录到数据库//Label20.Text=Request.UserHostAddress;//stringIP=Request.UserHostAddress;//stringsql="insertinto用户表(用户账号)values('"+IP.Trim()+"')";//DA.ExeSQL(sql);//stringsa="";//sa="deletefrom用户表where用户账号='"+IP.Trim()+"'";//DA.ExeSQL(sa);
解决方案十二:
//把IP地址记录到数据库Label20.Text=Request.UserHostAddress;stringIP=Request.UserHostAddress;stringsql="insertinto用户表(用户账号)values('"+IP.Trim()+"')";DA.ExeSQL(sql);stringsa="";sa="deletefrom用户表where用户账号='"+IP.Trim()+"'";DA.ExeSQL(sa);