2011-10-04 56 views
1

我已經知道如何知道我的操作系統是linux。我如何區分Fedora和Ubuntu?

navigator.userAgent.indexOf('X11') 

但是Ubuntu和Fedora具有相同的navigator.userAgent,所以我無法區分它。

什麼屬性包含該信息?

+4

嚴格來說,檢查X11並不會告訴您操作系統是Linux,只是瀏覽器正在使用X Window系統。 X11 *可以*在Windows和Mac上使用;這只是不典型。 – Wyzard

+0

發送給服務器的東西可能 - 這顯然是網頁檢測您要下載的內容的方式。你使用什麼服務器端語言? – Bojangles

+1

除了什麼是Wyzard說的,它也是相反的:Linux *不需要*使用X11。一個例子是Android,它在技術上運行在Linux內核上,但不使用X11顯示系統。 –

回答

2

沒有辦法可靠地告訴用戶正在通過用戶代理字符串運行什麼分配。有時你甚至希望能夠檢測到它是否是Linux。

如果你看看Gecko user agent string specification,你會發現沒有提到在UA字符串中包含Linux發行版。

向用戶詢問他們正在運行的發行版會更加可靠。

1

尋找在同一個用戶代理字符串FedoraUbuntu

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.14) Gecko/20080612 Fedora/2.0.0.14-20080612.fc8.acer Firefox/2.0.0.14

Mozilla/5.0 (X11; U; Linux x86_64; sv-SE; rv:1.8.1.12) Gecko/20080207 Ubuntu/7.10 (gutsy) Firefox/2.0.0.12

但我建議不要在UA字符串銀行,你可能會或可能不能夠完全識別所有傳入的請求。

+0

Ubuntu 11.04 *上的最新Firefox不會*發送'Ubuntu/11.04'字符串,而最新的Chromium *則會*。所以是的:它根本不*可靠。 –

+0

我的feodra中的navigator.userAgent是'Mozilla/5.0(X11; Linux i686; rv:6.0.2)Gecko/20100101 Firefox/6.0.2'。它不包含用於區分的字符串。 – Oz6848