首页 > 解决方案 > 为 802.11 数据包打开原始套接字 Micropython

问题描述

我正在使用带有 MicroPython 的 ESP8266 (NodeMCU) 并希望能够进行数据包注入或发送原始数据包/自由数据包。我无论如何都找不到打开原始套接字(usocket/socket 模块)或通过“网络”模块执行此操作。无论如何我可以做到这一点吗?

正常的python等价物是:

import socket
s = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(0x0003))
s.bind(("wlan0", 0x0003)) #wlan0 being in monitor mode

在micropython中,可以像这样进入监控模式(站模式)

import network
sta_if = network.WLAN(network.STA_IF)

但是从那里,您无法发送/接收任何数据包。有什么办法可以做到这一点?

任何帮助深表感谢。

抱歉缺少细节,但我不知道从这里做什么。

标签: pythonesp8266nodemcumicropython

解决方案


我不认为你可以通过使用 micropython@esp8266 来实现原始套接字

原因之一是 esp8266 的内存非常有限。另一个原因是他们的套接字没有实现原始套接字。

您可以尝试使用 CC3200 端口并修改它的 micropython 固件。


推荐阅读