使用Native Wifi API查找無線網絡信息
来源:互联网 发布:vs2017 mysql驱动 编辑:程序博客网 时间:2024/06/11 20:38
微軟自XP SP2之後的系統提供了關於Wireless開發的API,
據MSDN描述,此SDK提供兩個主要功能,即:管理无线网络配置和管理无线网络连接。
使用這套API也很簡單,主要步驟如下:
- 使用WlanOpenHandle、WlanCloseHandle打開或關閉一個客戶端句柄。
- 使用WlanEnumInterfaces列舉系統中可用的Wireless設備接口,主要用到的就是它返回的每個無線網卡的GUID這個參數。
- 使用WlanGetInterfaceCapability獲取關於無線網卡的性能參數,(注意這個函數在XP SP2下是不被支持的)
- 使用WlanQueryInterface獲取關於無線網卡接口的某些參數。
- 使用WlanSetInterface設置無線網卡接口某些參數。
- 使用WlanScan列舉每個無線網卡接口上找到的可用無線AP。
- 使用WlanGetAvailableNetworkList獲取有效的無線網絡信息。
- 使用WlanGetProfile、WlanSetProfile、WlanDeleteProfile管理無線網絡配置信息。
- 使用WlanConnect、WlanDisconnect連接或斷開某個無線網絡。
在我的這個程式中隻用到WlanOpenHandle、WlanCloseHandle、WlanEnumInterfaces、WlanScan、WlanGetAvailableNetworkList就可以搜索附近的無線網絡信息。
首先,要確保Wireless Zero Configuration服務是開啟狀態。
如果它被關閉就使用StartService啟動此服務:
首先先判斷服務是否以經啟動:
啟動服務:
注意:有時候Wireless Zero Configuration服務有可能被Disable掉,這時需要將它設為自動啟動或手動啟動才能調用StartService。
加入以下代碼:
獲得一個客戶端句柄:
其中WlanOpenHandle函數參數如下(MSDN):
1
當系統版本為Windows XP SP2時。
2
當系統版本為Vista and Windows Server 2008或更高時。
這個參數設為NULL.
此值可以設為NULL。
一個句柄指針,用來接收獲得的客戶端句柄.
列舉系統中的網絡接口:
其中WlanEnumInterfaces函數參數如下(MSDN):
使用WlanOpenHandle函數獲得的客戶端句柄。
此值設為NULL。
一個WLAN_INTERFACE_INFO_LIST結構指針的地址,你隻需要給它一個空指針就可以,用完後調用WlanFreeMemory釋放它。
掃描周圍的無線網絡:
其中WlanScan函數參數如下(MSDN):
使用WlanOpenHandle函數獲得的客戶端句柄。
使用WlanEnumInterfaces函數得到的網絡接口GUID,指針類型。
一個DOT11_SSID結構指針,此函數將搜索此結構指定的網絡,如果設為NULL將會搜索所有網絡。
XP SP2: 必須設為NULL.
一个WLAN_RAW_DATA结构指針,客户端配置可能包括提供信息和802.1X认证的要求,可以設為NULL。
XP SP2: 必須設為NULL.
必須設為NULL.
獲取搜索到的無線網絡列表:
其中WlanGetAvailableNetworkList函數參數如下(MSDN):
使用WlanOpenHandle函數獲得的客戶端句柄。
使用WlanEnumInterfaces函數得到的網絡接口GUID,指針類型。
WLAN_AVAILABLE_NETWORK_INCLUDE_ALL_ADHOC_PROFILES
0x00000001
包括所有可用的网络列表中特设的网络配置,包括配置文件不可见。
WLAN_AVAILABLE_NETWORK_INCLUDE_ALL_MANUAL_HIDDEN_PROFILES
0x00000002
包括所有可用的网络列表中隐藏的网络配置,包括配置文件不可见。
必須設為NULL.
一個WLAN_AVAILABLE_NETWORK_LIST結構指針的地址,用來接收找到的網絡信息列表,你隻需要給它一個空指針就可以,用完後調用WlanFreeMemory釋放它。
最後,設用WlanPrintInfo打印搜索到的信息:
初始化WlanAPI,本例中我是使用LoadLibrary和GetProcAddress調用Wlan API的。所以需要以下步驟:
- 使用Native Wifi API查找無線網絡信息
- Native wifi API使用
- Native wifi API使用
- Native wifi API使用
- native wifi api使用方法
- native wifi api 详解
- 使用Native WLAN API查找无线网络
- Native Wifi API 应用小结
- IOS -- 获取WIFI信息API
- VC++玩转Native Wifi API
- Detecting Wifi Networks Using Delphi and Native Wifi API
- 使用Native调用Java Native API
- 利用Native API内核模块信息
- VC++玩转Native Wifi API 2---Wifi on与wifi off
- 使用Native API 创建进程
- 使用Native API 创建进程
- 使用 Native API 创建进程
- 获取设备当前连接的WIFI信息(No Private API)
- DBHelper2
- dm9000x.c注释
- 高级 Linux 命令精通指南,第 3 部分:资源管理
- ArcGIS 9.3破解安装(window7)
- Android启动脚本init.rc
- 使用Native Wifi API查找無線網絡信息
- 调试快捷键,Visual C++ 6.0 默认快捷键
- GTK Gossip: GtkProgressBar
- RPG&SRPG伤害式计算方式杂谈
- Android 中的WebView
- 2008年04月《安全天下事之关于文件格式溢出》
- clusterware完全卸载
- LED广告牌制作方法
- win 7下例用VMware Workstation进入linux时(无法打开磁盘xx.vmdk或者某一个快照所依赖的磁盘原因:未能锁定文件)