找到Web应用程序客户端的操作系统

我有一个要求,我必须找到我的网络应用程序的用户的操作系统详细信息。 如果用户在Windows上运行它应该给“Windows 7 … Blah blah”如果Linux“Ubuntu … blah..blah或Fedora .. ..”如果Debian“无论哪个”版本的Debian。

任何人都可以建议我们如何做到这一点? 我看了一下sys-uname gem。 但它让我只知道服务器端信息。

你必须使用request.env['HTTP_USER_AGENT']

我找到了一个示例代码。

  def getBrowser(bt) rs=false ua=request.env['HTTP_USER_AGENT'].downcase isOpera = ua.index('opera') ? true : false isSafari = (ua =~ /webkit|khtml/) ? true : false isSafari3 = (ua.index('webkit/5')) ? true : false isGecko = (!isSafari and ua.index('gecko')) ? true : false isGecko3 = (!isSafari and ua.index('rv:1.9')) ? true : false isIE = (!isOpera and ua.index('msie')) ? true : false isIE7 = (!isOpera and ua.index('msie 7')) ? true : false case bt when 0 #isKonqueror if ua.index('konqueror') then rs=true end when 1 #isOpera rs=isOpera when 2 #isSafari rs=isSafari when 3 #isSafari2 rs=isSafari && !isSafari3 when 4 #isSafari3 rs=isSafari3 when 5 #isIE rs=isIE when 6 #isIE6 rs=isIE && !isIE7 when 7 #isIE7 rs=isIE7 when 8 #isGecko rs=isGecko when 9 #isGecko2 rs=isGecko && !isGecko3 when 10 #isGecko3 rs=isGecko3 when 11 #isWindows if ua.index('windows') or ua.index('win32') then rs=true end when 12 #isMac if ua.index('macintosh') or ua.index('mac os x') then rs=true end when 13 #isAir if ua.index('adobeair') then rs=true end when 14 #isLinux if ua.index('linux') then rs=true end when 15 #isSecure s = request.env['SERVER_PROTOCOL'].downcase if s.index('https') then rs=true end end rs end 

编辑 :创建另一个操作来确定操作系统

 def get_operating_system if request.env['HTTP_USER_AGENT'].downcase.match(/mac/i) "Mac" elsif request.env['HTTP_USER_AGENT'].downcase.match(/windows/i) "Windows" elsif request.env['HTTP_USER_AGENT'].downcase.match(/linux/i) "Linux" elsif request.env['HTTP_USER_AGENT'].downcase.match(/unix/i) "Unix" else "Unknown" end end 

希望能帮助到你!