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