iwlist() 命令如何扫描无线网络?

Posted

技术标签:

【中文标题】iwlist() 命令如何扫描无线网络?【英文标题】:How does iwlist() command scans the wireless networks? 【发布时间】:2009-05-29 12:03:25 【问题描述】:

我想知道 iwlist 命令如何在 linux 中扫描可用的无线网络。我阅读了它的源代码,并且有一个使用 SIOCSIWSCAN 触发扫描和 SIOCGIWSCAN 来获取扫描结果的 ioctl 调用。但是这些系统调用是如何捕获和分析信标帧的呢?

【问题讨论】:

【参考方案1】:

iwlist(8) 和其他无线工具为支持Linux Wireless Extensions (WEXT) 的不同无线设备驱动程序提供了一个通用前端。每个驱动程序将向 WEXT 注册处理程序,以实现此接口定义的设备特定操作。对于扫描,两个处理程序是触发扫描(命令 SIOCSIWSCAN)和获取扫描结果(命令 SIOCGIWSCAN)。设备完成扫描后,通过netlink 接口向WEXT 发送SIOCGIWSCAN 事件。侦听此套接字的应用程序然后可以发出 SIOCGIWSCAN 命令以从设备获取扫描结果。请注意,设备可以随意执行扫描。例如,它可以被动侦听信标或通过发送探测请求来主动扫描。

上面故意模糊了向设备发送命令的机制,因为有传统方式 (ioctl) 和新方式 (netlink - cfg80211)。但举一个具体的例子,考虑传统的方式。 ioctl 调用在 WEXT 模块中实现,但处理此命令的代码在设备驱动程序中实现。当用户空间应用程序创建 ioctl 时,WEXT 会查找设备驱动程序的处理程序并运行它。

【讨论】:

知道了.... ioctl 调用是在驱动程序模块中实现的,因此使用 SIOCGIWSCAN 对 ioctl 的实际函数调用将调用驱动程序模块中定义的函数。

以上是关于iwlist() 命令如何扫描无线网络?的主要内容,如果未能解决你的问题,请参考以下文章

VB6.0 扫描端口

如何通过nmap端口扫描漏洞入侵别人电脑

如何在Linux上使用Nmap安全扫描工具

如何在命令行中运行 ZAP 扫描?

网络安全学习笔记工具篇 ——使用OpenSCAP 命令行进行基线扫描与修复

Linux系统如何屏蔽黑客的Nmap扫描