self::getClientType(), 'ip' => $_SERVER['REMOTE_ADDR'] ?? 'unknown', 'userAgent' => $userAgent, 'browser' => [ 'name' => 'unknown', 'version' => 'unknown' ], 'os' => [ 'name' => 'unknown', 'version' => 'unknown' ] ]; // Détection du navigateur if (preg_match('/(Chrome|Safari|Firefox|Edge|MSIE|Trident)[\s\/]([0-9\.]+)/i', $userAgent, $matches)) { $clientInfo['browser']['name'] = $matches[1]; $clientInfo['browser']['version'] = $matches[2]; } // Détection du système d'exploitation if (preg_match('/(Android|iOS|iPhone OS|iPad|iPod|Windows NT|Mac OS X|Linux)[\s\/]([0-9\._]+)/i', $userAgent, $matches)) { $clientInfo['os']['name'] = $matches[1]; $clientInfo['os']['version'] = $matches[2]; } // Si c'est une application mobile, ajouter l'identifiant if ($clientInfo['type'] === 'mobile') { $clientInfo['appIdentifier'] = self::getAppIdentifier(); } return $clientInfo; } }