跟踪访问网站的用户代理

时间:2016-10-30 21:56:34

标签: javascript php html

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

2 个答案:

答案 0 :(得分:1)

好的,有三件事需要发生。编写文件,邮寄内容并在邮寄后清除文件。第一部分将在一个单独的文件中,而邮件和文件清除将在另一个文件中

<?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);
?>

答案 1 :(得分:0)

对于PHP,您可以使用:https://github.com/ua-parser/uap-php 并通过php将每个检测到的用户代理附加到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); 

注意,使用该库为您提供了许多选项,可以从用户代理接收所需数据。 例如,对于用户代理' Mozilla / 5.0(Macintosh; Intel Ma ... ',您可以实现该数据:

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...