跟踪访问站点的用户代理


Track user-agents that visit a site

我有一个网站,我想跟踪访问它的所有用户代理。并将所有用户代理保存在一个文件中,或通过电子邮件发送。我如何在PHP或JS中实现这一点?

好的,需要做三件事。撰写文件,邮寄内容,邮寄后清理文件。第一部分将在一个单独的文件中,而邮件和文件清理将在另一个文件

中。
<?php
    // get the user agent
    $user_agent = $_SERVER['HTTP_USER_AGENT'];
    // write to file
    file_put_contents( 'user_agents.log', $user_agent, FILE_APPEND );
?>
<?php

    // fetch the list of user agents from the file
    $body = file_get_contents( 'user_agents.log' );
    // mail to whereva
    mail( 'admin@example.com', 'User Agent Log', $body );
    // truncate the file back to zero
    $fh = fopen( 'user_agents.log', 'w' );
    fclose($fh);
?>

对于PHP,可以使用:https://github.com/ua-parser/uap-php并通过php:

将每个检测到的user-agent附加到TXT文件中
require_once 'vendor/autoload.php';
use UAParser'Parser;
$ua = $SERVER['HTTP_USER_AGENT'];
$parser = Parser::create();
$result = $parser->parse($ua);
$fp = fopen('user-agents.txt', 'a'); //opens file in append mode  
fwrite($fp, $result->ua->toString());  
fclose($fp); 

注意,使用库为您提供了许多从user-agent接收所需数据的选项。例如对于user-agent 'Mozilla/5.0 (Macintosh;英特尔马……'你可以获得数据:

print $result->ua->family;            // Safari
print $result->ua->major;             // 6
print $result->ua->minor;             // 0
print $result->ua->patch;             // 2
print $result->ua->toString();        // Safari 6.0.2
print $result->ua->toVersion();       // 6.0.2
print $result->os->family;            // Mac OS X
print $result->os->major;             // 10
print $result->os->minor;             // 7
print $result->os->patch;             // 5
print $result->os->patchMinor;        // [null]
print $result->os->toString();        // Mac OS X 10.7.5
print $result->os->toVersion();       // 10.7.5
print $result->device->family;        // Other
print $result->toString();            // Safari 6.0.2/Mac OS X 10.7.5
print $result->originalUserAgent;     // Mozilla/5.0 (Macintosh; Intel Ma...