Para una solución fácil eche un vistazo here. El encabezado user-agent podría revelar cierta información del sistema operativo, pero no contaría con eso.
Para su caso de uso, haría una llamada ajax utilizando javascript desde el lado del cliente para informar a su servidor del sistema operativo del cliente. Y hazlo a prueba de agua.
Aquí hay un ejemplo.
Javascript (lado del cliente, la detección del navegador + llamada 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();
}
});
PHP (lado del servidor):
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
}
http://stackoverflow.com/questions/228256/operating-system-from-user-agent-http-header – user187291
posible duplicado de [Obtener información del sistema operativo con PHP] (http://stackoverflow.com/questions/18070154/get-operating-system-info-with-php) –