我使用以下代码来发送HTTP GET请求:
syn = IP(dst='www.google.com') / TCP(dport=80, flags='S')
syn_ack = sr1(syn)
getStr = 'GET / HTTP/1.1\r\nHost: www.google.com\r\n\r\n'
request = IP(dst='www.google.com') / TCP(dport=80, sport=syn_ack[TCP].dport,seq=syn_ack[TCP].ack, ack=syn_ack[TCP].seq + 1, flags='A') / getStr
reply = sr1(request)
我还在等待谷歌的回复
这可能与您没有遵循正确的TCP协议有关。读你的代码,你好像忘记了三次握手的确认(SYN-SYN_ACK-ACK)。所以你发送了数据,但是它会忽略它,因为你还没有完成连接的设置。试着做下面这样的事情。在
我没有测试过这个,所以它可能工作,也可能不工作,但它肯定不会没有最后一个确认。在
相关问题 更多 >
编程相关推荐