打开电脑连接wifi是一件很平常的事情,但这些事情通常都是操作系统下的wifi管理程序替我们完成的,如何在程序中连接指定的wifi其实很少有资料介绍,在网络专栏的文章中,有两篇是关于wfi编程的文章,其中对无线网卡的操作都是通过ioctl()完成的,显得有些繁琐和晦涩,但其实WE(Wireless Extensions)有一个简单的库libiw,这个库的实现也是使用ioctl(),但是经过封装后,会使wifi编程变得容易一些,本文为一篇资料类的文章,主要描述libiw中API的调用方法。
1 前言
-
在大多数以 Linux 内核为基础的操作系统中,都是包含 WE(Wireless Extensions) 的,WE 实际就是一组在用户空间操作无线网卡驱动程序的一组 API,库 libiw 是对 WE 的一个封装;
-
尽管库 libiw 可以给 wifi 编程带来一定的便利,但其实这是一个已经过时的库,这个库的最后更新日期是 2009 年,尽管如此,现在的绝大多数无线网卡驱动程序仍然支持 WE,所以我们仍然可以使用 libiw 进行 wifi 编程;
-
一些常用的 wifi 工具软件是使用 WE 实现的,比如:iwlist、iwconfig 等,由此也可以看出 WE 在 wifi 编程中仍然占有很重要的位置;
-
WE 的基本实现是使用 ioctl(),前面的两篇文章 《使用ioctl扫描wifi信号获取信号属性的实例(一)》</