2010-11-05 16 views
8

मैं विज़िटर के ओएस को समझने की कोशिश कर रहा हूं या तो PHP का उपयोग कर विंडोज, मैक या लिनक्स (मुझे संस्करण, डिस्ट्रो जानकारी आदि की आवश्यकता नहीं है)। वहां कई विधियां हैं हालांकि वे इस सरल आवश्यकता के लिए थोड़ा जटिल लगते हैं।PHP के साथ सबसे आसान तरीका ओएस डिटेक्शन?

क्या कोई आसान तरीका है जो इस तरह की जानकारी प्रदान कर सकता है फिर भी अभी भी काफी विश्वसनीय है?

अग्रिम धन्यवाद।

+1

http://stackoverflow.com/questions/228256/operating-system-from-user-agent-http-header – user187291

+0

संभावित डुप्लिकेट [PHP के साथ ऑपरेटिंग सिस्टम जानकारी प्राप्त करें] (http://stackoverflow.com/questions/18070154/get-operating-system-info-with-php) –

उत्तर

6

एक आसान समाधान के लिए here देखें। उपयोगकर्ता-एजेंट शीर्षलेख कुछ ओएस जानकारी प्रकट कर सकता है, लेकिन मैं उस पर भरोसा नहीं करता।

आपके उपयोग के मामले में मैं ग्राहक के ओएस के सर्वर को सूचित करने के लिए क्लाइंट साइड से जावास्क्रिप्ट का उपयोग करके AJAX कॉल करता हूं। और यह निविड़ अंधकार करो।

यहां एक उदाहरण है।

जावास्क्रिप्ट (क्लाइंट साइड, ब्राउज़र का पता लगाने + ajax कॉल):

window.addEvent('domready', function() { 
    if (BrowserDetect) { 
    var q_data = 'ajax=true&browser=' + BrowserDetect.browser + '&version=' + BrowserDetect.version + '&os=' + BrowserDetect.OS; 
    var query = 'record_browser.php' 
    var req = new Request.JSON({url: query, onComplete: setSelectWithJSON, data: q_data}).post(); 
    } 
}); 

पीएचपी (सर्वर साइड):

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    $session = session_id(); 
    $user_id = isset($user_id) ? $user_id : 0; 
    $browser = isset($_POST['browser']) ? $_POST['browser'] : ''; 
    $version = isset($_POST['version']) ? $_POST['version'] : ''; 
    $os = isset($_POST['os']) ? $_POST['os'] : ''; 

    // now do here whatever you like with this information 
} 
+0

भरोसेमंद लगता है। हालांकि मुझे लगता है कि पता लगाने के बाद केवल पृष्ठ लोड के बाद होता है? – user435216

+0

पृष्ठ लोड के बिना आप उपयोगकर्ता-एजेंट शीर्षलेख से अधिक पुनर्प्राप्त करने में सक्षम नहीं होंगे। खैर, सत्र (प्रारंभिक पृष्ठ लोड पर) प्रारंभ करते समय आप उपयोगकर्ता ओएस को सहेज सकते हैं, पहले पृष्ठ पर ओएस का पता लगाने के बाद एक वर्कअराउंड दूसरे पृष्ठ पर रीडायरेक्ट करना हो सकता है। – Thariama

+0

लिंक टूटा हुआ है –

22
<?php 

$agent = $_SERVER['HTTP_USER_AGENT']; 

if(preg_match('/Linux/',$agent)) $os = 'Linux'; 
elseif(preg_match('/Win/',$agent)) $os = 'Windows'; 
elseif(preg_match('/Mac/',$agent)) $os = 'Mac'; 
else $os = 'UnKnown'; 


echo $os; 

?> 
+0

मुझे अच्छा लगता है! –

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