The following code will log the visitor's IP address and access time, OS, and browser:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$user_agent = $_SERVER['HTTP_USER_AGENT']; | |
function getOS() { | |
global $user_agent; | |
$os_platform = "Unknown OS Platform"; | |
$os_array = array( | |
'/windows nt 10/i' => 'Windows 10', | |
'/windows nt 6.3/i' => 'Windows 8.1', | |
'/windows nt 6.2/i' => 'Windows 8', | |
'/windows nt 6.1/i' => 'Windows 7', | |
'/windows nt 6.0/i' => 'Windows Vista', | |
'/windows nt 5.2/i' => 'Windows Server 2003/XP x64', | |
'/windows nt 5.1/i' => 'Windows XP', | |
'/windows xp/i' => 'Windows XP', | |
'/windows nt 5.0/i' => 'Windows 2000', | |
'/windows me/i' => 'Windows ME', | |
'/win98/i' => 'Windows 98', | |
'/win95/i' => 'Windows 95', | |
'/win16/i' => 'Windows 3.11', | |
'/macintosh|mac os x/i' => 'Mac OS X', | |
'/mac_powerpc/i' => 'Mac OS 9', | |
'/linux/i' => 'Linux', | |
'/ubuntu/i' => 'Ubuntu', | |
'/iphone/i' => 'iPhone', | |
'/ipod/i' => 'iPod', | |
'/ipad/i' => 'iPad', | |
'/android/i' => 'Android', | |
'/blackberry/i' => 'BlackBerry', | |
'/webos/i' => 'Mobile' | |
); | |
foreach ($os_array as $regex => $value) { | |
if (preg_match($regex, $user_agent)) { | |
$os_platform = $value; | |
} | |
} | |
return $os_platform; | |
} | |
function getBrowser() { | |
global $user_agent; | |
$browser = "Unknown Browser"; | |
$browser_array = array( | |
'/msie/i' => 'Internet Explorer', | |
'/firefox/i' => 'Firefox', | |
'/safari/i' => 'Safari', | |
'/chrome/i' => 'Chrome', | |
'/edge/i' => 'Edge', | |
'/opera/i' => 'Opera', | |
'/netscape/i' => 'Netscape', | |
'/maxthon/i' => 'Maxthon', | |
'/konqueror/i' => 'Konqueror', | |
'/mobile/i' => 'Handheld Browser' | |
); | |
foreach ($browser_array as $regex => $value) { | |
if (preg_match($regex, $user_agent)) { | |
$browser = $value; | |
} | |
} | |
return $browser; | |
} | |
$user_os = getOS(); | |
$user_browser = getBrowser(); | |
$device_details = $user_browser." ".$user_os; | |
$line = date('Y-m-d H:i:s') . " - $_SERVER[REMOTE_ADDR]" . " " . $device_details; | |
file_put_contents('visitors.log', $line . PHP_EOL, FILE_APPEND); | |
?> |
Make sure that the current directory is owned by www-data.
$ sudo chown www-data:www-data .
You will see a log file visitors.log in the current directory with a log similar to:
2016-10-08 12:33:13 - 12.34.56.78 Chrome Linux
2016-10-08 12:33:13 - 12.34.56.78 Chrome Linux
No comments:
Post a Comment