【发布时间】:2019-01-21 09:46:23
【问题描述】:
我想在 Windows 中创建一个原始套接字以连接到笔记本电脑上的特定接口。我让它在 Linux 上运行,但它在 Windows 上不运行。
这是我的代码,在 Linux 中可以,但在 Windows 中不行:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP)
#s.bind(("192.168.1.100", 0))
s.bind((socket.gethostname(), 0))
#s.bind((socket.gethostbyname(socket.gethostname()), 0))
注释掉的行是我在这里找到的建议:Python Raw Socket to Ethernet Interface (Windows) 但它们对我不起作用。我总是收到这个错误:
Traceback (most recent call last):
File "D:/raw_socket.py", line 5, in <module>
s.bind((socket.gethostname(), 0))
OSError: [WinError 10022] An invalid argument was supplied
我在研究这个问题时无法找到解决方案。非常感谢任何帮助。
【问题讨论】:
标签: python windows python-3.x sockets raw-sockets