使用原始源地址重播http流量

时间:2013-01-16 03:32:03

标签: c http sockets setsockopt

我想构建一个包含客户端和Web服务器的测试平台,在那里我可以重放一些记录的http get请求到Web服务器。因此,我计划使用原始源地址和端口号精确模拟请求的实际流量。

为了构建客户端,我正在跳跃,我可以使用套接字选项IP_FREEBIND绑定到任何可能的源地址和端口号。有没有为此目的的已知代码? (我真的不想重新发明轮子)我应该像this thread建议的那样使用原始套接字吗?

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

IP_FREEBIND用于侦听的地址,当前主机尚未配置尚未,因此如果以后配置了该地址,您的程序可以接收到它的连接。它不允许您发送假装来自不同计算机的数据包。你需要一个原始套接字。

如果你伪造你的包裹'客户端上的源地址,请记住服务器会将其响应发送到该伪造的地址。您的客户端必须能够接收这些返回数据包,因为您需要进行双向通信才能建立TCP连接,然后才能发送实际的HTTP请求。您可以使用原始套接字来实现您自己的整个虚假IP层,但是在隔离网络上进行测试可能要简单得多,只需使用您希望测试请求来自的任何IP地址配置客户端计算机

答案 1 :(得分:0)

您可以尝试使用原始来源地址重放http流量的tcpcopy