2

我需要获取有关从服务器请求页面的客户端的信息。我需要获取有关客户端 IP 以及请求哪个页面的信息?我更喜欢控制台应用程序,即 linux[Ubuntu] 中的 Shell 或 Bash 脚本。如果请求页面,控制台或终端会立即打印消息。在该消息中,它应该包含所请求的 IP 地址和页面。我还想通过 MySQL 将 IP 地址和请求的页面保存到数据库中。感谢您的回答和解决方案。

谢谢

4

5 回答 5

2

尝试在网络服务器访问日志上使用watch++ 。就我而言,它是grepdate

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 }" 
'
于 2012-09-24T09:00:53.213 回答
1

你必须$_SERVER[]在 php.ini 中使用。

这将为您提供所需的客户端和服务器的所有信息。

http://php.net/manual/en/reserved.variables.server.php

于 2012-09-24T07:28:04.903 回答
1
For all the server variable use You have to use $_SERVER[] in php.
@Yogesh Suthar is absolutely correct and being specific you can use these variables.

For IP address
$_SERVER['REMOTE_ADDR'];

For Request Page 
$_SERVER["HTTP_REFERER"];
于 2012-09-24T07:34:40.317 回答
1

嘿,我的问题解决了。刚刚从@air4X 得到线索

watch -n -1 'd=`date +"%d/%b/%Y:%T"`;tail -n 20 /opt/lampp/logs/access_log '

感谢您的大力帮助....

于 2012-09-24T12:10:35.100 回答
1

运行这个小的 PHP 脚本:

<?php
foreach($_SERVER as $key => $value){
echo '$_SERVER["'.$key.'"] = '.$value."<br />";
}
?>
于 2014-12-25T14:14:02.810 回答