我正在嘗試更改tcp數據包的源IP地址。給出波紋管tcp客戶端中的bind()調用
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));*
然後也失敗,同樣的錯誤。
我怎麼能改變我的源IP地址的數據包,源自我的電腦。 請幫助我,它的代理應用程序。
OS:Linux的2.6.37-tproxy#1 SMP星期三04月03日23點34分〇〇秒IST 2013 x86_64的x86_64的x86_64的GNU/Linux的
預先感謝。
請提及你的內核和操作系統版本.. – VoidPointer
不知道,但你可能必須使用原始套接字來做到這一點 – Barmar
@Barmar如果沒有錯,我已經在CentOS/RHEL 6.0中以同樣的方式看到了這種可能OP did – VoidPointer