我需要获取有关从服务器请求页面的客户端的信息。我需要获取有关客户端 IP 的信息以及请求哪个页面?我更喜欢控制台应用程序,即linux[Ubuntu]中的Shell或Bash脚本。如果请求该页面,则会向控制台或终端发送即时打印消息。在该消息中,应包括请求的 IP 地址和页面。我还想通过MySQL将IP地址和请求的页面保存到数据库中。感谢您的回答和解决方案。
谢谢
尝试在Web服务器访问日志上使用watch
+ grep
+ date
。就我而言,它是
watch -n -1 'd=`date +"%d/%b/%Y:%T"`;grep $d /pgms/nginx1117/logs/access.log '
您必须注意访问日志中的日期格式。此外,输出在一秒钟内消失。
[编辑:使用以下命令将显示延长至3秒。
watch -n 1 '
d0=`date +"%S"`;
if [ $d0 -ne 0 ]; then d1=$(printf %02d `expr $d0 - 1`); else d1=59; fi ;
if [ $d1 -ne 0 ]; then d2=$(printf %02d `expr $d1 - 1`); else d2=59; fi ;
d=`date +"%d/%b/%Y:%H:%M:"`;
grep -e "$d$d0" -e "$d$d1" -e "$d$d2" /pgms/nginx1117/logs/access.log | awk "{ print $1,$7 }"
'
在 php 中使用$_SERVER[]
。
这将为您提供所需的客户端和服务器的所有信息。
http://php.net/manual/en/reserved.variables.server.php
我的问题解决了。刚从@air4X那里得到线索
watch -n -1 'd=`date +"%d/%b/%Y:%T"`;tail -n 20 /opt/lampp/logs/access_log '
感谢您的大力帮助...
运行这个小的 PHP 脚本:
<?php
foreach($_SERVER as $key => $value){
echo '$_SERVER["'.$key.'"] = '.$value."<br />";
}
?>
对于所有服务器变量的使用,您必须在 PHP 中使用 $_SERVER[]
。Yogesh Suthar是绝对正确的。
更具体地说,$_SERVER['REMOTE_ADDR']
包含客户端 IP,$_SERVER["HTTP_REFERER"]
包含浏览器查看的最后一页。