使用preg_match从日志文件中获取IP地址和日期。

时间:2014-03-19 19:10:43

标签: php regex preg-match

我有一个包含用户登录日期的打击日志文件:

Date:2014-03-19 21:38:48 IP:127.0.0.1 Request:asdasd URL:127.0.0.1:1990/anti_attack/anti-bruteforce.php?pass=asdasd USERAGENT:Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:11.0) Gecko/20100101 Firefox/11.0

我获取当前IP地址登录列表:

preg_match("#\b(IP:".$_SERVER['REMOTE_ADDR'].")\b#", $sessions,$sessions1);

结果是:

Array ( [0] => IP:127.0.0.1 [1] => IP:127.0.0.1 ) 

这不是我需要的结果。我需要当前发送的所有请求。 例如,如果当前日期为2014-03-19 21:38:48我需要发送($_SERVER['REMOTE_ADDR'])的当前IP地址2014-03-19 21:38的所有请求,结果必须如下:

Array ( [0] => Date:2014-03-19 21:38:28 IP:127.0.0.1[1] =>Date:2014-03-19 21:38:40 IP:127.0.0.1 [2] =>Date:2014-03-19 21:38:48 IP:127.0.0.1) 

1 个答案:

答案 0 :(得分:1)

我用过这个:

$sessions=file_get_contents('session.log');
$sessions=explode("\n",$sessions);
foreach($sessions as $tmp)
  if(strpos($tmp,date("Y-m-d H:i")) !== false && strpos($tmp,$_SERVER['REMOTE_ADDR']) !== false)
    $sessions1[]=$tmp;