如何从客户端更改HttpServletRequest中的IP?

时间:2014-01-09 11:17:34

标签: java security ip httprequest spoofing

服务器代码:

  String  ip =  request.getRemoteAddr()
     if(ip='127.0.0.1')
        System.out.print("hello");

现在我从我的机器访问该远程站点,所以我的IP地址显然应该像192.*.*.*

如何欺骗服务器(IP欺骗),以便服务器始终为我的请求打印“hello”?

1 个答案:

答案 0 :(得分:1)

编辑问题的新答案: 你不能用Java。如果需要假装请求来自127.0.0.1(服务器本身),那么您将需要入侵操作系统的网络堆栈。

旧答案: 客户端用于连接服务器的IP地址取决于它使用的网络接口以及连接到此网络接口的网络类型。 例: 如果您的客户端是笔记本电脑,那么它很可能只有一个网络接口。此网络接口使用192.168.1.10作为其IP地址(例如,从路由器上的DHCP分配)作为其内部IP地址。您的路由器也可能连接到互联网,使用IP,例如20.20.20.20,它通过NAT与连接的设备共享。 如果使用此连接到本地网络上的服务器,则服务器看到的客户端IP地址为192.168.1.10;如果您连接的服务器不在本地网络上但在互联网上,您的客户端的IP(服务器看到的)将是20.20.20.20

所以你不能让你的客户端假装使用127.0.0.1(如果服务器和客户端在同一台机器上运行,你的客户端很可能会有127.0.0.1)。当然,像IP欺骗这样的技术,你假装拥有与实际不同的IP,但这是完全不同的问题。