2009-09-06 50 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