Mac层上的Micropython Raw套接字



在Micropython中的MAC层上创建一个原始套接字如何?

UNIX等效是:

eth_p_all=3
netif='wlan0'
s=socket.socket(socket.AF_PACKET,socket.SOCK_RAW,socket.htons(eth_p_all))
s.bind((netif,0))

对于一个人,尚不清楚如何获取接口名称,并且没有socket.AF_PACKETsocket.htons

因此,如果无法使用库存库或固件执行此操作,我应该选择哪些库,或者需要修改固件,我应该如何确切地修改固件?

当前UPY固件没有原始套接字实现。哟可以检查以下行。原始插座调度已从modlwip.c

中删除

https://github.com/micropopython/micropython/blob/68a5d6fe7746850ce049b8bf295bf295bfce1382383835383f3/extmod/extmod/modlwip.c#l712

如果您想通过自己的自我修改固件,则可以按照步骤进行操作。

  • 检查平台的原点SDK是否支持RAW套接字。(例如,CC3200使用Ti的CC3200 SDK并支持RAW插座)
  • 修改modlwip.c

有一个非官方端口(Realtek的Ameba系列)支持RAW插座。您可以从这个开始。

https://github.com/wylinks/micropython-ameba/blob/ameba/ameba/ports/ameba/mphelper/mphelper/mods/modlwip.c

最新更新