带原始套接字的python套接字setsockopt

带原始套接字的python套接字setsockopt,python,sockets,tcp,Python,Sockets,Tcp,只需使用pythonsocketraw发送tcp_-syn。我遵循代码,但当我运行代码时,我发现以下错误: Traceback (most recent call last): File "findPort.py", line 122, in <module> s.sendto(packet, (dest_ip , 27015 )) # put this in a loop if you want to flood the target socket.error:

只需使用pythonsocketraw发送tcp_-syn。我遵循代码,但当我运行代码时,我发现以下错误:

Traceback (most recent call last):
  File "findPort.py", line 122, in <module>
    s.sendto(packet, (dest_ip , 27015 ))    # put this in a loop if you want to flood the target
socket.error: [Errno 22] Invalid argument
代码运行平稳。不幸的是,正如您所想象的,wireshark嗅探两个tcp头数据。一个是内核添加,另一个是我自己添加

因此,问题是:

  • 我上面所说的错误是什么意思
  • 为什么我删除setsockopt错误消失
  • 如何使用python 2.7发送tcp_syn

  • 提前非常感谢~~~~~~

    让我回答我自己的问题。python无法发送原始套接字的主要原因是Mac/Windows不支持自定义TCP/UDP头。如果您想编写自己的tcp/udp报头并将其发送到网络,请使用LINUX操作系统

    #s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)