我如何知道 nl80211 命令需要哪些参数?

How do I know what parameters nl80211 commands require?

我主要参考的是http://lxr.free-electrons.com/source/include/uapi/linux/nl80211.h

假设我想调用 NL80211_CMD_TRIGGER_SCAN 文档说使用给定参数触发新扫描 NL80211_ATTR_TX_NO_CCK_RATE 用于决定是否以 CCK 速率发送探测请求。

我正在查看我在网上找到的一些资源,但它不起作用,我会 那么我怎么知道要在消息中放入什么?

我正在使用 libnl 与内核通信

我在网上找到了一些答案,对此有所了解,但对我来说仍然是一条黑暗的小巷。这里有一些:

Using nl80211.h to scan access points

how to use the libnl library to trigger nl80211 commands?

我 运行 从 Python 的角度处理同样的问题。从个人经验来看,iw 源代码很糟糕。你最好做

strace -e trace=network -f -x -s 4096 iw ...

我构建了一个简单的解析器并复制和粘贴输出,我能够弄清楚发送的是什么 nl80211 命令和属性以及值,然后查看响应是什么。