2011-03-25 83 views
2

我的團隊是一個比較大的大學(50K +用戶)負責後臺架構,認證等,工程級支持無線和有線網絡。我們最大的兩個問題是確認網絡問題(即確認「長負載時間」或「慢互聯網」的報告),以及收集有關客戶端設備(MAC地址,驅動程序信息,配置等)的準確信息。我們正式支持Windows,Mac,Ubuntu Linux,iOS和Android。移動設備對我們來說非常重要,因爲它們變得非常流行。支持應用 - 從瀏覽器(桌面和移動)獲取系統信息

我們已經可以訪問Web100 NDT服務器(類似於http://ndt.anl.gov:7123/),該服務器使用Java applet運行雙向帶寬測試,並報告上傳和下載帶寬,延遲,抖動,客戶端是否落後NAT等等。假設有NDT服務器的iOS和Android客戶端,但是a)需要在他們的設備上永久安裝應用程序(並且,對於iOS,它在App Store中獲得),以及b)我懷疑iOS應用程序是開源的,因此我們需要從頭開始實施,以添加信息收集和結果提交。

我需要收集客戶端操作系統上的信息,以相對簡單的方式,即非技術性的最終用戶能理解嗎?從本質上講,我希望我們的幫助臺的人能夠告訴用戶(當然,那些有工作的網絡連接)去一個網頁,輸入自己的准考證號,點擊一個按鈕,東西會收集他們的MAC地址,操作系統類型和版本,無線網卡驅動程序版本等,然後將其發回服務器。

我認爲是一個Java小程序,但考慮到現代瀏覽器中的沙箱,無論如何獲取MAC地址(更不用說像shell訪問一樣更有用),無論應用程序如何簽名或用戶有多少警告給出。我正在考慮Java Web Start以從桌面操作系統獲得我們需要的東西,或者只是告訴Linux和Mac人員下載Bash腳本並運行它。

移動操作系統的任何想法?對他們來說,從本質上講,我需要得到無線MAC地址,設備型號,操作系統版本/構建等

任何人都已經知道了這樣做(並且是免費的,免費的)任何項目的?

+0

只是一兩件事,那將是我要是什麼方法了無限寶貴以某種方式能夠訪問無線網卡的當前看到的網絡,其連接到的SSID,信號強度等... – 2011-03-25 12:14:39

回答

1

對於Android的您可能需要一個應用程序專門提供信息...我不知道你會得到詳細程度沒有它。該應用程序還需要權限才能運行。我很想被證明是錯誤的,但我懷疑情況會是這樣。您可以將用戶從支持頁面安裝的應用程序鏈接到應用程序,並且該應用程序可以自動將信息發送回來,如果這樣可以讓用戶更輕鬆?不管怎樣,下面可能會有所幫助:

wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); 

其次是方法調用像wifiManager.getDhcpInfo()wifiManager.getWifiState()wifiManager.getConnectionInfo()應該提供您所需要的信息。

你需要<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />在應用程序的清單,以及。

和@willytate中的這段代碼在另一個類似的線程重新操作系統信息: android.os.Build提供了大量的信息。嘗試:

一個String = 「調試-的相關信息:」; s + =「\ n OS版本:」+ System.getProperty(「os.version」)+「(」+ android.os.Build.VERSION。INCREMENTAL +「)」; s + =「\ n OS API級別:」+ android.os.Build.VERSION.SDK; s + =「\ n設備:」+ android.os.Build.DEVICE; s + =「\ n模型(和產品):」+ android.os.Build.MODEL +「(」+ android.os.Build.PRODUCT +「)」;

希望幫助

史蒂夫,我忘了提...因爲我們最大的支撐區域是無線

+0

謝謝,史蒂夫。我有一種感覺,如果沒有應用程序,沒有辦法做到這一點......當我們有一兩天的訪客用戶並且要求他們安裝時,這是一種痛苦......另一方面,這就是沒有像蘋果設備那樣痛苦得多...... – 2011-03-30 16:39:51