我正在尝试更改 tcp 数据包的源 IP 地址。代码片段如下所示
bzero(&clientaddr,sizeof(clientaddr));
clientaddr.sin_family = AF_INET;
clientaddr.sin_addr.s_addr=inet_addr("172.16.2.10");
clientaddr.sin_port=htons(8080);
if (bind(sockfd, (struct sockaddr *) &clientaddr,
sizeof(clientaddr)) < 0)
{
perror("bind");
}
绑定特定端口工作正常,但是当我尝试使用不同的 ip 地址绑定时,绑定失败并出现错误
bind: Cannot assign requested address
我还尝试通过如下设置套接字选项,]
setsockopt (sockfd, SOL_IP, IP_TRANSPARENT, &n1, sizeof(int));*
然后它也因同样的错误而失败。
我如何更改来自我的 PC 的数据包的源 IP 地址。请帮助我,它用于代理应用程序。
操作系统:Linux 2.6.37-tproxy #1 SMP Wed Apr 3 23:34:00 IST 2013 x86_64 x86_64 x86_64 GNU/Linux
提前致谢。