'Andorra', 'ae' => 'Verenigde Arabische Emiraten', 'af' => 'Afghanistan', 'ag' => 'Antigua en Barbuda', 'ai' => 'Anguilla', 'al' => 'Albanië', 'am' => 'Armenië', 'an' => 'Nederlands Antille', 'ao' => 'Angola', 'aq' => 'Antarctica', 'ar' => 'Argentinië', 'as' => 'American Samoa', 'at' => 'Oostenrijk', 'au' => 'Australië', 'aw' => 'Aruba', 'az' => 'Azerbeidzjan ', 'ba' => 'Bosnië Herzegovina', 'bb' => 'Barbados', 'bd' => 'Bangladesh', 'be' => 'België', 'bf' => 'Burkina Faso', 'bg' => 'Bulgarijë', 'bh' => 'Bahrein', 'bi' => 'Burundi', 'bj' => 'Benin', 'bm' => 'Bermuda', 'bn' => 'Brunei Darussalam', 'bo' => 'Bolivië', 'br' => 'Brazilië', 'bs' => 'Bahamas', 'bt' => 'Bhutan', 'bv' => 'Bouvet Eilanden', 'bw' => 'Botswana', 'by' => 'Wit Rusland', 'bz' => 'Belize', 'ca' => 'Canada', 'cc' => 'Cocos (Keeling) Islands', 'cf' => 'Centraal Afrikaanse Republiek', 'cg' => 'Kongo', 'ch' => 'Zwitserland', 'ci' => 'Ivoorkust', 'ck' => 'Cook Eilanden', 'cl' => 'Chili', 'cm' => 'Kameroen', 'cn' => 'China', 'co' => 'Colombië', 'cr' => 'Costa Rica', 'cs' => 'Tsjechië', 'cu' => 'Cuba', 'cv' => 'Cape Verde', 'cx' => 'Kerstmis Eilanden', 'cy' => 'Cyprus', 'cz' => 'Tsjechië', 'de' => 'Duitsland', 'dj' => 'Djibouti', 'dk' => 'Denemarken', 'dm' => 'Dominica', 'do' => 'Dominicaanse Republiek', 'dz' => 'Algerije', 'ec' => 'Ecuador', 'ee' => 'Letland', 'eg' => 'Egypte', 'eh' => 'West Sahara', 'er' => 'Eritrea', 'es' => 'Spanje', 'et' => 'Ethiopië', 'fi' => 'Finland', 'fj' => 'Fiji', 'fk' => 'Falkland Eilanden (Malvinas)', 'fm' => 'Micronesia', 'fo' => 'Faroe Eilanden', 'fr' => 'Frankrijk', 'fx' => 'Frankrijk ', 'ga' => 'Gabon', 'gb' => 'Groot Brittanië', 'gd' => 'Grenada', 'ge' => 'Georgië', 'gf' => 'Frans Guinea', 'gh' => 'Ghana', 'gi' => 'Gibraltar', 'gl' => 'Groenland', 'gm' => 'Gambia', 'gn' => 'Guinea', 'gp' => 'Guadeloupe', 'gq' => 'Equatoriaal Guinea', 'gr' => 'Griekenland', 'gs' => 'S. Georgia en S. Sandwich Eilanden', 'gt' => 'Guatemala', 'gu' => 'Guam', 'gw' => 'Guinea-Bissau', 'gy' => 'Guyana', 'hk' => 'Hong Kong', 'hm' => 'Heard en McDonald Eilanden', 'hn' => 'Honduras', 'hr' => 'Kroatië', 'ht' => 'Haiti', 'hu' => 'Hongarijë', 'id' => 'Indonesië', 'ie' => 'Ierland', 'il' => 'Israël', 'in' => 'India', 'io' => 'British Indian Ocean Territory', 'iq' => 'Irak', 'ir' => 'Iran', 'is' => 'Ijsland', 'it' => 'Italië', 'jm' => 'Jamaica', 'jo' => 'Jordanië', 'jp' => 'Japan', 'ke' => 'Kenya', 'kg' => 'Kyrgyzstan', 'kh' => 'Cambodia', 'ki' => 'Kiribati', 'km' => 'Comoros', 'kn' => 'Saint Kitts and Nevis', 'kp' => 'Noord Korea', 'kr' => 'Zuid Korea', 'kw' => 'Koeweit', 'ky' => 'Kaaiman Eilanden', 'kz' => 'Kazakstan', 'la' => 'Laos', 'lb' => 'Libanon', 'lc' => 'Saint Lucia', 'li' => 'Liechtenstein', 'lk' => 'Sri Lanka', 'lr' => 'Liberië', 'ls' => 'Lesotho', 'lt' => 'Litouwen', 'lu' => 'Luxemburg', 'lv' => 'Letland', 'ly' => 'Libië', 'ma' => 'Maroco', 'mc' => 'Monaco', 'md' => 'Moldovië', 'mg' => 'Madagascar', 'mh' => 'Marshall Eilanden', 'mk' => 'Macedonië', 'ml' => 'Mali', 'mm' => 'Myanmar', 'mn' => 'Mongolië', 'mo' => 'Macau', 'mp' => 'Northern Mariana Eilanden', 'mq' => 'Martinique', 'mr' => 'Mauritanië', 'ms' => 'Montserrat', 'mt' => 'Malta', 'mu' => 'Mauritius', 'mv' => 'Maldiven', 'mw' => 'Malawi', 'mx' => 'Mexico', 'my' => 'Malaysië', 'mz' => 'Mozambique', 'na' => 'Namibië', 'nc' => 'Nieuw Caledonië', 'ne' => 'Niger', 'nf' => 'Norfolk Island', 'ng' => 'Nigeria', 'ni' => 'Nicaragua', 'nl' => 'Nederland', 'no' => 'Noorwegen', 'np' => 'Nepal', 'nr' => 'Nauru', 'nt' => 'Neutrale zone', 'nu' => 'Niue', 'nz' => 'Nieuw Zeeland', 'om' => 'Oman', 'pa' => 'Panama', 'pe' => 'Peru', 'pf' => 'Frans Polynesië', 'pg' => 'Papua New Guinea', 'ph' => 'Philippijnen', 'pk' => 'Pakistan', 'pl' => 'Polen', 'pm' => 'St. Pierre en Miquelon', 'pn' => 'Pitcairn', 'pr' => 'Puerto Rico', 'pt' => 'Portugal', 'pw' => 'Palau', 'py' => 'Paraguay', 'qa' => 'Quatar', 're' => 'Reunion', 'ro' => 'Romenië', 'ru' => 'Rusland', 'rw' => 'Rwanda', 'sa' => 'Saudi Arabië', 'sb' => 'Salamon Eilanden', 'sc' => 'Seychelles', 'sd' => 'Sudan', 'se' => 'Sweden', 'sg' => 'Singapore', 'sh' => 'St. Helena', 'si' => 'Slovenië', 'sj' => 'Svalbard en Jan Mayen Eilanden', 'sk' => 'Slovaakse Republiek', 'sl' => 'Sierra Leone', 'sm' => 'San Marino', 'sn' => 'Senegal', 'so' => 'Somalië', 'sr' => 'Suriname', 'st' => 'Sao Tome en Principe', 'su' => 'Rusland', 'sv' => 'El Salvador', 'sy' => 'Syria', 'sz' => 'Swaziland', 'tc' => 'Turkse en Caicos Eilanden', 'td' => 'Chaad', 'tf' => 'Franse Zuidelijke Teretoriums', 'tg' => 'Togo', 'th' => 'Thailand', 'tj' => 'Tajikistan', 'tk' => 'Tokelau', 'tm' => 'Turkmenistan', 'tn' => 'Tunisië', 'to' => 'Tonga', 'tp' => 'Oost Timor', 'tr' => 'Turkije', 'tt' => 'Trinidad en Tobago', 'tv' => 'Tuvalu', 'tw' => 'Taiwan', 'tz' => 'Tanzania', 'ua' => 'Ukraine', 'ug' => 'Uganda', 'uk' => 'Vereningde Staten', 'um' => 'US Minor Outlying Eilanden', 'us' => 'Vereningde Staten', 'uy' => 'Uruguay', 'uz' => 'Oezbekistan', 'va' => 'Vaticaan', 'vc' => 'Saint Vincent and the Grenadines', 've' => 'Venezuela', 'vg' => 'Virgin Islands (British)', 'vi' => 'Virgin Islands (US)', 'vn' => 'Vietnam', 'vu' => 'Vanuatu', 'wf' => 'Wallis and Futuna Islands', 'ws' => 'Samoa', 'ye' => 'Yemen', 'yt' => 'Mayotte', 'yu' => 'Yugoslavië', 'za' => 'Zuid Afrika', 'zm' => 'Zambia', 'zr' => 'Zaïre', 'zw' => 'Zimbabwe', 'com' => 'US Commercieel', 'edu' => 'US Educatie', 'gov' => 'US Regering', 'int' => 'Internationaal', 'mil' => 'US Leger', 'net' => 'Netwerk', 'org' => 'Non-Profit Organizaties', 'arpa' => 'Old-Style Arpanet', 'nato' => 'NATO Field' ); // Small list with all countries $Browsers = array( array('Opera', 'Opera(/| )([0-9].[0-9]{1,2})', 2), array('iCab', 'iCab ([0-9].[0-9].[0-9])', 1), array('Blazer', 'Blazer/([0-9].[0-9])', 1), array('Internet Explorer', 'MSIE ([0-9].[0-9]{1,2})', 1), array('Ombiweb', 'OmniWeb/([0-9].[0-9]{1,2})', 1), array('Netscape', 'Netscape/([0-9].[0-9])', 1), array('Firefox', 'Firefox/([0-9].(([0-9]{1,2})|([0-9].[0-9]{1,2})))', 1), array('Konqueror', 'Konqueror/([0-9].[0-9]{1,2})', 1), array('Safari', 'Safari/([0-9].[0-9]{1,2})', 1), array('Lynx', 'Lynx/([0-9].[0-9].(([0-9]{1,2})|([0-9][a-z]+.[0-9])))', 1), array('Wget', 'Wget/([0-9].[0-9]{1,2}.[0-9])', 1), array('Mozilla', 'Mozilla/([0-9].[0-9]{1,2})', 1), array('Konqueror', 'Konqueror/([0-9].[0-9]{1,2})', 1), ); $Os = array( array('Linux', 'linux'), array('Windows', 'win32'), array('Palm OS', 'Palm'), array('Windows ME', 'Win 9x 4.90'), array('Windows XP Mediacenter edition', 'Media Center PC'), array('Windows 2000', 'windows 2000'), array('Windows 2000', 'windows nt)( ){0,1}(5.0)'), array('Windows Vista', 'windows NT (6.[0-9])'), array('Windows XP', '(windows nt)( ){0,1}(5.1)'), array('Windows Mobile', 'Windows CE'), array('Windows ', '(windows) ([0-9]{2})', 2), array('Windows NT ', '(winnt)([0-9]{1,2}.[0-9]{1,2}){0,1}', 2), array('Windows NT ', '(windows nt)( ){0,1}([0-9]{1,2}.[0-9]{1,2}){0,1}', 3), array('Mac OS X', 'Mac OS X'), array('mac', 'MAC'), array('SunOS ', '(sunos) ([0-9]{1,2}.[0-9]{1,2}){0,1}', 2), array('BeOS ', '(beos) r([0-9]{1,2}.[0-9]{1,2}){0,1}', 2), array('FreeBSD', 'freebsd'), array('OpenBSD', 'openbsd'), array('IRIX', 'irix'), array('OS/2', 'os/2)'), array('plan', 'Plan9'), array('Unix', 'unix'), array('OSF', 'osf'), array('Google', 'google'), array('MSN', 'msn'), array('Yahoo!', 'Yahoo!'), ); foreach($Browsers as $Navigator) { if(ereg($Navigator[1], $_SERVER['HTTP_USER_AGENT'], $Version)) { $Browser = $Navigator[0]; $BrowserVersion = $Version[$Navigator[2]]; break; } } foreach($Os as $Operating) { if(isset($Operating[2])) { if(eregi($Operating[1], $_SERVER['HTTP_USER_AGENT'], $Version)) { $OperatingSystem = $Operating[0].$Version[$Operating[2]]; break; } } else { if(eregi($Operating[1], $_SERVER['HTTP_USER_AGENT'])) { $OperatingSystem = $Operating[0]; break; } } } $Host = gethostbyaddr($_SERVER['REMOTE_ADDR']); // Get host by IP if($Host == $_SERVER['REMOTE_ADDR']) // Host same as IP? { $Info['Country'] = "Onbekend"; } $HostExplode = explode(".", $Host); // Explode host $HostShort = array_pop($HostExplode); // Short country if(isset($Countries[$HostShort])) // Country exists { $Info['Country'] = $Countries[$HostShort]; } else // Country doesn't exist { $Info['Country'] = "Onbekend"; } if(empty($_SERVER["HTTP_REFERER"])) { $Info['Referer'] = ""; } else { $Info['Referer'] = $_SERVER["HTTP_REFERER"]; } $Info['Browser'] = (isset($Browser)) ? $Browser : 'Onbekend'; $Info['BrowserVersion'] = (isset($BrowserVersion)) ? $BrowserVersion : ''; $Info['Os'] = (isset($OperatingSystem)) ? $OperatingSystem : 'Onbekend'; if((CONF_VISIBLE == "everyone") OR (CONF_VISIBLE == "nosearchengines" AND $Info['Os'] != "Google" AND $Info['Os'] != "Yahoo!" AND $Info['Os'] != "MSN")) { global $DB; if(defined("USER_ID")) // User is already present in DB > just update { $Update = $DB->query_fetchDB(" SELECT id FROM ot_users_info WHERE user_id = '" . USER_ID . "' AND user_ip = '" . $_SERVER['REMOTE_ADDR'] . "' AND NOW() - user_date < 3600 ORDER BY id DESC LIMIT 1 "); // Check if session isn't too old if($Update) { $DB->query_execDB(" UPDATE ot_users_info SET user_ip = '" . $_SERVER['REMOTE_ADDR'] . "', user_browser = '" . addslashes($Info['Browser']) . "', user_os = '" . addslashes($Info['Os']) . "', user_location = '" . addslashes($Info['Country']) . "', user_date = NOW(), user_views = user_views + 1 WHERE user_id = '" . USER_ID . "' AND id = '" . $Update['0']['id'] . "' "); // Update record } else // New session { $DB->query_execDB(" INSERT INTO ot_users_info SET id = 'NULL', user_id = '" . USER_ID . "', user_ip = '" . $_SERVER['REMOTE_ADDR'] . "', user_browser = '" . addslashes($Info['Browser']) . "', user_os = '" . addslashes($Info['Os']) . "', user_location = '" . addslashes($Info['Country']) . "', user_referer = '" . addslashes($Info['Referer']) . "', user_in = '" . addslashes($_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF']) . "', user_date = NOW(), user_views = '1' "); // Insert record } } else { $Update = $DB->query_fetchDB(" SELECT id FROM ot_users_info WHERE user_ip = '" . $_SERVER['REMOTE_ADDR'] . "' "); // Check if user is already present if($Update) // User is present in DB > just update { $DB->query_execDB(" UPDATE ot_users_info SET user_ip = '" . $_SERVER['REMOTE_ADDR'] . "', user_browser = '" . addslashes($Info['Browser']) . "', user_os = '" . addslashes($Info['Os']) . "', user_location = '" . addslashes($Info['Country']) . "', user_date = NOW(), user_views = user_views + 1 WHERE id = '" . $Update['0']['id'] . "' "); // Update record } else // New visitor > insert new record { $DB->query_execDB(" INSERT INTO ot_users_info SET id = 'NULL', user_id = '0', user_ip = '" . $_SERVER['REMOTE_ADDR'] . "', user_browser = '" . addslashes($Info['Browser']) . "', user_os = '" . addslashes($Info['Os']) . "', user_location = '" . addslashes($Info['Country']) . "', user_referer = '" . addslashes($Info['Referer']) . "', user_in = '" . addslashes($_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF']) . "', user_date = NOW(), user_views = '1' "); // Insert record } } } else { die("Sorry, maar u werd geïdentificeerd als zijnde een geautomatiseerde dienst. Uw toegang werd geweigerd."); } } ?>