【问题标题】:Python socket issue on windows 10Windows 10 上的 Python 套接字问题
【发布时间】:2020-08-08 04:03:52
【问题描述】:

我正在尝试在 Windows 10 上捕获数据包。 我使用了官方文档页面的说明:

import socket

# the public network interface
HOST = socket.gethostbyname(socket.gethostname())

# create a raw socket and bind it to the public interface
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP)
s.bind((HOST, 0))

# Include IP headers
s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)

# receive all packages
s.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON)

# receive a package
while True:
    print(s.recvfrom(65565))    

# disabled promiscuous mode
s.ioctl(socket.SIO_RCVALL, socket.RCVALL_OFF)

以前我能够捕捉到它们,但现在我只看到一些虚拟的 UDP 数据包

【问题讨论】:

    标签: python windows sockets networking sniffer


    【解决方案1】:

    找到根本原因: socket.gethostbyname() 返回以太网适配器的 IP(我不使用,但在系统更新后它会变为活动状态)。 所以禁用它可以解决问题。

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 2020-08-09
      • 1970-01-01
      • 1970-01-01
      • 2017-06-17
      • 1970-01-01
      • 2016-03-04
      相关资源
      最近更新 更多