request.getRemoteAddr()是通过什么原理得到客户端IP的啊?
它是以什么为依据得到客户端的真实IP的啊?或者是它的原理是什么?
除了用代理外有什么可以欺骗的方法吗?
------解决方案--------------------http请求头里包含的,原理就是http协议
------解决方案--------------------
------解决方案--------------------看 Jdk 的Src 文件
------解决方案--------------------你可以找找这个方法的源代码,看看就清楚了
------解决方案--------------------学习一下,感觉除了代理的确没什么好办法了。
这个应该跟TCP/IP协议有关,既然要遵循该协议,获取IP也是根据这个来的。那又怎么可能欺骗呢 ?
------解决方案--------------------最近开发用到这了 关注
------解决方案--------------------在request.getRemoteAddr()方法中,客户端 与服务器之间是使用TCP/IP协议的,
也就是说Web服务器实际上是通过 类似
ServerSocket ss = new ServerSocket(...);
...
Socket s = ss.accept();
来建立与客户端的连接的,在Socket方法中就可以getInetAddress得到客户端的地址了,这个地址是根据TCP/IP协议的规范,由客户端发送的数据包中包含的
如果不包含客户端的地址,那么服务器是无法将数据返回给客户端的
------解决方案--------------------
------解决方案--------------------点进去看看不就清楚了