繁体   English   中英

windows 10 上的 Python 插座问题

[英]Python socket issue on windows 10

我正在尝试在 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 数据包

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM