急求,请教下各位,为什么用request.getRemoteAddr()获取的Ip都不是真实的

急求,请教下各位,为什么用request.getRemoteAddr()获取的Ip都不是真实的,第1张

获取客户端的IP地址的方法是:requestgetRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用requestgetRemoteAddr()方法获取的IP地址是:127001或1921681110,而并不是客户端的真实IP。
经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的 IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的>1装载Servlet。这项 *** 作一般是动态执行的。然而,Server通常会提供一个管理的选项,用于在Server启动时强制装载和初始化特定的Servlet。
2Server创建一个Servlet的实例
3Server调用Servlet的init()方法
4一个客户端的请求到达Server
5Server创建一个请求对象
6Server创建一个响应对象
7Server激活Servlet的service()方法,传递请求和响应对象作为参数
8service()方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息
9service()方法使用响应对象的方法,将响应传回Server,最终到达客户端。service()方法可能激活其它方法以处理请求,如doGet()或doPost()或程序员自己开发的新的方法。
10对于更多的客户端请求,Server创建新的请求和响应对象,仍然激活此Servlet的service()方法,将这两个对象作为参数传递给它。如此重复以上的循环,但无需再次调用init()方法。一般Servlet只初始化一次(只有一个对象),当Server不再需要Servlet时(一般当Server关闭时),Server调用Servlet的Destroy()方法。

首先需要说明,在C#中REQUST有两种
1 位于SystemWeb>

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10597743.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-09
下一篇2023-05-09

发表评论

登录后才能评论

评论列表(0条)

    保存