0

我正在开展一个项目,该项目要求我能够可靠地检测 PC 和 Mac 上是否存在无线功能。

理想情况下,我希望通过现有的命令行工具来实现这一点,我可以将其与我的应用程序打包在一起,或者可能已经存在于操作系统上。

无线功能是指台式电脑上存在无线网络适配器,或笔记本电脑上内置无线网络,甚至是无线加密狗/USB 密钥 - 基本上是任何允许连接到无线路由器的设备或组件的存在.

我一直在研究简单地从 PC 上的“ipconfig /all”或“systeminfo”和 Mac 上的“system_profiler”捕获输出......然后解析已知的无线适配器和关键字,但这似乎不是一个理想的解决方案.

我可以使用任何 API 在任一平台上实现此目的吗?

编辑:理想情况下,我想支持的平台是:

Windows:2000/XP/Vista/7 Mac:10.4/.5/.6

4

2 回答 2

1

您会发现Managed Wifi API很有用

于 2009-09-06T08:11:09.270 回答
1

ipconfig不是你为什么不简单地查询网络配置的多合一工具netsh呢?

当存在 WiFi 设备时:

> netsh wlan 显示驱动程序

接口名称:无线网络连接

    驱动程序:英特尔(R) PRO/无线 3945ABG 网络连接
    供应商:英特尔公司
    提供者:微软
    日期:2009-03-26
    版本:12.4.1.4
    INF 文件:C:\Windows\INF\netw5v64.inf
    文件:共 1 个
                                C:\Windows\system32\DRIVERS\netw5v64.sys
    类型:原生 Wi-Fi 驱动程序
    支持的无线电类型:802.11a 802.11b 802.11g
    支持 FIPS 140-2 模式:是
    支持的托管网络:否
    基础架构模式支持的身份验证和密码:
                                打开 无
                                打开 WEP-40bit
                                打开 WEP-104bit
                                打开 WEP
                                共享 WEP-40bit
                                共享 WEP-104bit
                                共享 WEP
                                WPA-企业 TKIP
                                WPA-企业 CCMP
                                WPA-个人 TKIP
                                WPA-个人 CCMP
                                WPA2-企业 TKIP
                                WPA2-企业 CCMP
                                WPA2-个人 TKIP
                                WPA2-个人 CCMP
                                开放供应商定义
    ad-hoc 模式支持的身份验证和密码:
                                打开 无
                                打开 WEP-40bit
                                打开 WEP-104bit
                                打开 WEP
                                共享 WEP-40bit
                                共享 WEP-104bit
                                共享 WEP
                                WPA2-个人 CCMP

当计算机中没有 WiFi NIC 时,可能是 Wireless AutoConfig 服务没有运行(因为不需要它):

> netsh wlan 显示驱动程序
无线自动配置服务 (wlansvc) 未运行。

但即使它是手动启动的:

> netsh wlan 显示驱动程序
系统上没有无线接口。
于 2009-09-06T08:20:20.123 回答