2017-04-08 58 views
0

我在不同的Mac OS版本中有一個應用程序 - 一個用於el Capitan,一個用於所有操作系統版本。我可以從用戶代理獲取Mac OS版本嗎?

用戶(不幸)並不總是知道他們在el Cap或Sierra上,並且很難搞清楚。

在我的下載頁面上,我想向他們展示(如果可能)下載哪個版本,因此我想使用用戶代理字符串來執行此操作。

它似乎可以包含像「英特爾Mac OS X 10_12_3」這樣的短語 - 這是可靠的還是有標準的呢?無法在Apple.com上找到它。如果是 - 我可以從哪種形狀確定?

+0

https://www.whatismybrowser.com/developers/tools/user-agent-parser/browse/operating-system-name/mac-os-x-user-agents – Barmar

+0

謝謝 - 看到了,但它是非常過時並不再維護 – user1914292

+0

每個瀏覽器的格式都不同,正如您可以從該網站的表格中看到的一樣。 – Barmar

回答

1

我建議你匹配正則表達式

/OS X 10[_.](\d+)/ 

有些瀏覽器使用_到OS X版本的部分分開,而其他人使用.,這將匹配格式。捕獲組將包含OS X主版本號。如果是11或更高,那麼他們應該使用El Capitan版本。

+0

謝謝 - 聽起來不錯 - 我會檢查一下。我不確定是否總是發送這個部分,或者是否有不同的版本(如。和下劃線)。 – user1914292

+0

你不能總是依靠用戶代理,因爲用戶可以欺騙它。但是,如果你與天真的用戶打交道,而且他們不使用異國情調的瀏覽器,它應該非常可靠。 – Barmar

相關問題