Get user operating system with PHP
Jun 11, 2010 PHP Coding
Ever wanted to find out what operating system your visitors are using? The following function will allow you to get the user operating system so you can use in a statistics application or show certain content on your website. This will allow server side decisions on what stylesheets to show or any other operating system specific content to be shown/hide.
function getOS($userAgent) { // Create list of operating systems with operating system name as array key $oses = array ( 'iPhone' => '(iPhone)', 'Windows 3.11' => 'Win16', 'Windows 95' => '(Windows 95)|(Win95)|(Windows_95)', // Use regular expressions as value to identify operating system 'Windows 98' => '(Windows 98)|(Win98)', 'Windows 2000' => '(Windows NT 5.0)|(Windows 2000)', 'Windows XP' => '(Windows NT 5.1)|(Windows XP)', 'Windows 2003' => '(Windows NT 5.2)', 'Windows Vista' => '(Windows NT 6.0)|(Windows Vista)', 'Windows 7' => '(Windows NT 6.1)|(Windows 7)', 'Windows NT 4.0' => '(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT)', 'Windows ME' => 'Windows ME', 'Open BSD'=>'OpenBSD', 'Sun OS'=>'SunOS', 'Linux'=>'(Linux)|(X11)', 'Safari' => '(Safari)', 'Macintosh'=>'(Mac_PowerPC)|(Macintosh)', 'QNX'=>'QNX', 'BeOS'=>'BeOS', 'OS/2'=>'OS/2', 'Search Bot'=>'(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp/cat)|(msnbot)|(ia_archiver)' ); foreach($oses as $os=>$pattern){ // Loop through $oses array // Use regular expressions to check operating system type if(eregi($pattern, $userAgent)) { // Check if a value in $oses array matches current user agent. return $os; // Operating system was matched so return $oses key } } return 'Unknown'; // Cannot find operating system so return Unknown }
An example of how this would be used:
echo getOS($_SERVER['HTTP_USER_AGENT']);
This script can be used with the Get Browser Type, which also has the same structure as this script.
3ware 9650SE-4LPML RAID array Degraded
Nov 20, 2009 Server Virtualization, Technology
This week I have started to look into converting my home Ubuntu Hardy (8.04) x64 VMware Server 1.0.5 server to ESXi. The main reason behind this is that my work runs ESX 3.5 and I am trying to learn a bit more items related to ESX. Before I fully wiped all of my system I wanted to make sure that ESXi would run on my hardware, so I removed my 9650 card as well as the SATA connection to my main boot drive. This way I could revert back to my old system without loosing anything if ESXi would not run. The motherboard I have in the system is a MSI K9A2 Platinum AM2+/AM2 AMD 790FX ATX board which can boot from USB. I have picked up an 8GB USB flash drive to run ESXi on instead of a hard drive. After a lot of tweaking ESXi was running smooth on my system without my RAID drives and it was time to boot back into my original system to get some files and configurations off. During the system boot I was notified that the RAID array has been degraded and that there was a problem. Below I will show you the trouble shooting steps I used to get the RAID array back online and rebuilt. Read the rest of this entry »