打開電腦連接wifi是一件很平常的事情,但這些事情通常都是操作系統下的wifi管理程序替我們完成的,如何在程序中掃描wifi信號其實資料并不多,前面已經有兩篇文章介紹了如何使用ioctl()掃描wifi信號,但其實在Linux下有一個簡單的庫對這些ioctl()的操作進行了封裝,這個庫就是libiw,使用libiw可以簡化編程,本文介紹了如果使用libiw對wifi信號進行掃描的基本方法,本文將給出完整的源代碼,本文程序在 ubuntu 20.04 下編譯測試完成,gcc 版本號 9.4.0;盡管本文內容主要涉及無線網絡,但讀者并不需要對 802.11 標準有所了解。
1 前言
- 前面已經有兩篇文章介紹了如何掃描 wifi 信號,《使用ioctl掃描wifi信號獲取信號屬性的實例(一)》和《使用ioctl掃描wifi信號獲取信號屬性的實例(二)》,這兩篇文章均是使用
ioctl()
完成的 wifi 信號掃描; - 本文介紹使用 libiw 庫進行 wifi 信號掃描的方法,比較前兩篇文章中介紹的方法,編程上更加簡單;
- 實際上使用 libiw 掃描 wifi 信號,本質上還是使用
ioctl()
; - 在大多數以 Linux 內核為基礎的操作系統中,都是包含 WE(Wireless Extensions) 的,WE 實際就是一組在用戶空間操作無線網卡驅動程序的一