View file IPtoCountry_UsersOnline_1.3/browser.php

File size: 4.19Kb
<?php

class Browser_Detection

{

	

	function get_browser($useragent)

	{

		//check for most popular browsers first

		//unfortunately that's ie. We also ignore opera and netscape 8 

		//because they sometimes send msie agent

		if(strpos($useragent,"MSIE") !== false && strpos($useragent,"Opera") === false && strpos($useragent,"Netscape") === false)

		{

			//deal with IE

			$found = preg_match("/MSIE ([0-9]{1}\.[0-9]{1,2})/",$useragent,$mathes);

			if($found)

			{

				return "Internet Explorer " . $mathes[1];

			}

		}

		elseif(strpos($useragent,"Gecko"))

		{

			//deal with Gecko based

			

			//if firefox

			$found = preg_match("/Firefox\/([0-9]{1}\.[0-9]{1}(\.[0-9])?)/",$useragent,$mathes);

			if($found)

			{

				return "Mozilla Firefox " . $mathes[1];

			}

			

			//if Netscape (based on gecko)

			$found = preg_match("/Netscape\/([0-9]{1}\.[0-9]{1}(\.[0-9])?)/",$useragent,$mathes);

			if($found)

			{

				return "Netscape " . $mathes[1];

			}

			

			//if Safari (based on gecko)

			$found = preg_match("/Safari\/([0-9]{2,3}(\.[0-9])?)/",$useragent,$mathes);

			if($found)

			{

				return "Safari " . $mathes[1];

			}

			

			//if Galeon (based on gecko)

			$found = preg_match("/Galeon\/([0-9]{1}\.[0-9]{1}(\.[0-9])?)/",$useragent,$mathes);

			if($found)

			{

				return "Galeon " . $mathes[1];

			}

			

			//if Konqueror (based on gecko)

			$found = preg_match("/Konqueror\/([0-9]{1}\.[0-9]{1}(\.[0-9])?)/",$useragent,$mathes);

			if($found)

			{

				return "Konqueror " . $mathes[1];

			}		



			//no specific Gecko found

			//return generic Gecko

			return "Gecko based";					

		}

		

		elseif(strpos($useragent,"Opera") !== false)

		{

			//deal with Opera

			$found = preg_match("/Opera[\/ ]([0-9]{1}\.[0-9]{1}([0-9])?)/",$useragent,$mathes);

			if($found)

			{

				return "Opera " . $mathes[1];

			}

		}

		elseif (strpos($useragent,"Lynx") !== false)

		{

			//deal with Lynx			

			$found = preg_match("/Lynx\/([0-9]{1}\.[0-9]{1}(\.[0-9])?)/",$useragent,$mathes);

			if($found)

			{

				return "Lynx " . $mathes[1];

			}

			

		}

		elseif (strpos($useragent,"Netscape") !== false)

		{

			//NN8 with IE string

			$found = preg_match("/Netscape\/([0-9]{1}\.[0-9]{1}(\.[0-9])?)/",$useragent,$mathes);

			if($found)

			{

				return "Netscape " . $mathes[1];

			}

		}

		else 

		{

			//unrecognized, this should be less than 1% of browsers (not counting bots like google etc)!

			return false;

		}

	}

	

	function get_os($useragent)

	{		

		$useragent = strtolower($useragent);

		

		//check for (aaargh) most popular first		

		//winxp

		if(strpos("$useragent","windows nt 5.1") !== false)

		{

			return "Windows XP";			

		}

		elseif (strpos("$useragent","windows 98") !== false)

		{

			return "Windows 98";

		}

		elseif (strpos("$useragent","windows nt 5.0") !== false)

		{

			return "Windows 2000";

		}

		elseif (strpos("$useragent","windows nt 5.2") !== false)

		{

			return "Windows 2003 server";

		}

		elseif (strpos("$useragent","windows nt 6.0") !== false)

		{

			return "Windows Vista";

		}

		elseif (strpos("$useragent","windows nt") !== false)

		{

			return "Windows NT";

		}

		elseif (strpos("$useragent","win 9x 4.90") !== false && strpos("$useragent","win me"))

		{

			return "Windows ME";

		}

		elseif (strpos("$useragent","win ce") !== false)

		{

			return "Windows CE";

		}

		elseif (strpos("$useragent","win 9x 4.90") !== false)

		{

			return "Windows ME";

		}

		elseif (strpos("$useragent","mac os x") !== false)

		{

			return "Mac OS X";

		}

		elseif (strpos("$useragent","macintosh") !== false)

		{

			return "Macintosh";

		}

		elseif (strpos("$useragent","linux") !== false)

		{

			return "Linux";

		}

		elseif (strpos("$useragent","freebsd") !== false)

		{

			return "Free BSD";

		}

		elseif (strpos("$useragent","symbian") !== false)

		{

			return "Symbian";

		}

		else 

		{

			return false;

		}

	}

}

 $browser = Browser_Detection::get_browser($_SERVER['HTTP_USER_AGENT']);

 $os = Browser_Detection::get_os($_SERVER['HTTP_USER_AGENT']);

?>