2015-02-04 7 views
6

मैं एक स्प्रिंग एमवीसी अनुप्रयोग पर काम कर रहा हूं, और मुझे क्लाइंट ब्राउज़र नाम और संस्करण तक पहुंचने की आवश्यकता है।स्प्रिंग एमवीसी में सटीक क्लाइंट ब्राउज़र नाम और संस्करण कैसे प्राप्त करें?

मैं एक पैरामीटर के रूप में मेरे कार्रवाई में HttpServletRequest का एक उदाहरण है और request.getHeader("User-Agent") विधि का उपयोग करें, लेकिन यह Internet Explorer 9

मैं नंबर और संस्करण सटीक की जरूरत है Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko लौट आए। क्या ऐसा करने के लिए कोई उपकरण है?

+0

करने के लिए कोई सुरक्षित तरीका नहीं है कर दो। ब्राउज़र का नाम और संस्करण ब्राउज़र से आता है (_client_)। इसे आसानी से खराब किया जा सकता है, इसलिए आप 100% सुनिश्चित नहीं हो सकते कि ब्राउजर का सही नाम और संस्करण – BackSlash

उत्तर

10

यह स्वीकार करते हुए कि उपयोगकर्ता एजेंट असुरक्षित है। फिर भी, अन्य तरीकों की कमी में, आपको उपयोगकर्ता-एजेंट शीर्षलेख को पार्स करना चाहिए, जो वास्तव में आसान नहीं है, क्योंकि संयोजनों की संख्या भारी है। जब तक आप अपने खुद के रोल करना चाहते हैं, मेरा सुझाव है

https://github.com/HaraldWalker/user-agent-utils/tree/master

उपयोग पर

http://www.bitwalker.eu/software/user-agent-utils

स्रोत उपलब्ध है काफी सरल है

UserAgent userAgent = UserAgent.parseUserAgentString(request.getHeader("User-Agent")); 
System.out.println(userAgent.getBrowser().getName() + " " + userAgent.getBrowserVersion()); 
+0

'उपयोगकर्ता-एजेंट-यूटिल' का लाइसेंस क्या है? क्या मैं इसे एंटरप्राइज़ एप्लिकेशन में उपयोग कर सकता हूं? – RanPaul

+0

लाइसेंस यहां उपलब्ध है https://github.com/HaraldWalker/user-agent-utils/blob/master/LICENSE.txt –

संबंधित मुद्दे