2

サーバーからページを要求するクライアントに関する情報を取得する必要があります。クライアント IP に関する情報を取得する必要があり、どのページが要求されていますか? Linux [Ubuntu] のコンソール アプリケーション、つまりシェルまたは Bash スクリプトを使用したいと思います。ページが要求された場合、コンソールまたは端末への即時印刷メッセージが表示されます。そのメッセージには、要求された IP アドレスとページが含まれている必要があります。また、IP アドレスと要求されたページを MySQL を介してデータベースに保存したいと考えていました。あなたの答えと解決策をいただければ幸いです。

ありがとう

4

5 に答える 5

2

watch+ grep+dateを Web サーバーのアクセス ログで使用してみてください。私の場合は

watch -n -1 'd=`date +"%d/%b/%Y:%T"`;grep $d /pgms/nginx1117/logs/access.log '

アクセス ログの日付形式に注意する必要があります。また、出力は1秒以内に消えます。

[編集: 以下を使用して、表示を 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

この小さな PHP スクリプトを実行します。

<?php
foreach($_SERVER as $key => $value){
echo '$_SERVER["'.$key.'"] = '.$value."<br />";
}
?>
于 2014-12-25T14:14:02.810 に答える
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

$_SERVER[]phpで使用する必要があります。

これにより、必要なクライアントとサーバーのすべての情報が得られます。

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

于 2012-09-24T07:28:04.903 に答える
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 に答える