2009-09-06 48 views
0

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

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

通过无线功能我的意思是在桌面PC上存在无线网络适配器,或者在笔记本电脑上甚至无线Dongle/USB Key上内置无线网卡 - 基本上存在允许连接的任何设备或组件到无线路由器。

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

是否有任何API可用于在任一平台上实现此目的?

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

的Windows 2000/XP/Vista/7的 的Mac:10.4/0.5/0.6

回答

1

而不是ipconfig为什么不简单地查询网络配置的所有功能于一身的工具,netsh

当WiFi装置存在:

> netsh wlan show drivers 

Interface name: Wireless Network Connection 

    Driver     : Intel(R) PRO/Wireless 3945ABG Network Connection 
    Vendor     : Intel Corporation 
    Provider     : Microsoft 
    Date      : 2009-03-26 
    Version     : 12.4.1.4 
    INF file     : C:\Windows\INF\netw5v64.inf 
    Files      : 1 total 
           C:\Windows\system32\DRIVERS\netw5v64.sys 
    Type      : Native Wi-Fi Driver 
    Radio types supported  : 802.11a 802.11b 802.11g 
    FIPS 140-2 mode supported : Yes 
    Hosted network supported : No 
    Authentication and cipher supported in infrastructure mode: 
           Open   None 
           Open   WEP-40bit 
           Open   WEP-104bit 
           Open   WEP 
           Shared   WEP-40bit 
           Shared   WEP-104bit 
           Shared   WEP 
           WPA-Enterprise TKIP 
           WPA-Enterprise CCMP 
           WPA-Personal TKIP 
           WPA-Personal CCMP 
           WPA2-Enterprise TKIP 
           WPA2-Enterprise CCMP 
           WPA2-Personal TKIP 
           WPA2-Personal CCMP 
           Open   Vendor defined 
    Authentication and cipher supported in ad-hoc mode: 
           Open   None 
           Open   WEP-40bit 
           Open   WEP-104bit 
           Open   WEP 
           Shared   WEP-40bit 
           Shared   WEP-104bit 
           Shared   WEP 
           WPA2-Personal CCMP

当没有无线NIC在计算机上,无线自动配置服务可能不运行(因为它不需要):

> netsh wlan show drivers 
The Wireless AutoConfig Service (wlansvc) is not running.

但即使它的手动启动:

> netsh wlan show drivers 
There is no wireless interface on the system.
+0

感谢 - 这听起来像在Windows平台上很好地解决。我确实需要支持Windows 2000/XP/Vista/7,但是这可以在所有这些操作系统上运行? – Shrill 2009-09-06 08:43:53

+0

netsh肯定存在于Windows 2000以上,但真正的操作系统级WiFi功能在Windows Vista之前并不存在。在XP中,它比任何真正的支持都更像黑客,尽管你可能在那里很幸运。在Windows 2000上,WiFi仅由NIC的驱动程序软件管理,因此您无法在其中可靠地检测到它。 – Joey 2009-09-06 11:58:47

+0

啊,我明白了。在XP下可以使用netsh wlan吗?您是否需要安装此修补程序才能显示此选项?否则我可以通过无线零配置服务获得类似的功能吗? – Shrill 2009-09-16 16:04:13