【问题标题】:python socket setsockopt with raw socketpython socket setsockopt 与原始套接字
【发布时间】:2021-10-17 03:13:39
【问题描述】:

只需使用 python socket raw 发送 tcp_syn。我遵循代码here,但是当我运行代码时出现以下错误:

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

但是,当我删除 setsockopt 时:

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

代码运行流畅。不幸的是,正如您所想象的那样,wireshark 会嗅探两个 tcp 标头数据。一个是内核添加,一个是自己添加。

所以问题是:

  1. 上面显示的错误是什么意思?
  2. 为什么我删除setsockopt的错误消失了?
  3. 如何使用 python 2.7 发送 tcp_syn?

先谢谢了~~~~~~

【问题讨论】:

    标签: python sockets tcp


    【解决方案1】:

    让我回答我自己的问题。 python 无法发送原始套接字的主要原因是因为 Mac/Windows 不支持自定义 TCP/UDP 标头。如果要编写自己的TCP/UDP header并发送到net,则需要使用LINUX操作系统。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-25
      • 2012-03-11
      • 2017-05-11
      • 1970-01-01
      • 2012-01-19
      • 2013-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多