Сообщение от
bombeg
ip.php
PHP код:
<?php
$log = 'log.dat';
$time = time();
$ips = file($log);
$print = $time = array();
foreach($ips as $ip)
{
list($_ip, $_time) = explode(':', trim($ip));
$print[$_ip] = $_ip;
$time[$_ip] = $_time;
}
$max_time = time() - 300;
$print = array_reverse($print);
foreach($print as $ip)
{
if($time[$ip] > $max_time) echo $ip, ' посетил страницу в ', date('h:i:s', $time[$ip]), "\n";
}
?>
Помогите плиз разобраться с кодом, сам к сожалению не могу.
В файле log.dat содержится данные IP:дата
Даный код получает инфу из файла и выводит на экран айпишники + последнюю дату. При этом отсеивает похожие айпи адреса (чтобы одинаковых не выводилось) и выводит только те которые были активны за последние 5 минут (сверяет по дате)
Пример файла log.dat :
127.0.0.1:1234567890
127.0.0.2:1234567890
127.0.0.3:1234567890
127.0.0.4:1234567890
127.0.0.1:1234567890
Теперь-же в файле log.dat добавилось 2 новых параметра, и инфа выглядит так:
127.0.0.1:1234567890:randominfa1:randominfa2
127.0.0.2:1234567890:randominfa1:randominfa2
32.60.32.60:1234567890:randominfa1:randominfa2
127.0.0.4:1234567890:randominfa1:randominfa2
32.60.32.60:1234567890:randominfa1:randominfa2
В данном коде надо подправить вывод 3 и 4 параметров на экран, чтобы они выводились вместе с айпишниками.
Но к сожалению мне не понятно где в этом коде первый параметр, а где второй.
я банально сделал вот такую подправку:
Код:
list($_ip, $_time, $_cid, $_nat) = explode(':::', trim($ip));
$print[$_ip] = $_ip;
$print[$_cid] = $_cid;
$print[$_nat] = $_nat;
$time[$_ip] = $_time;
Дальше юзал:
echo $ip.$_nat, ' посетил страницу в ', date('h:i:s', $time[$ip]), "\n";
И это даже на первый взгляд заработало, но как оказалось последние 2 параметра в этом случае он абсолютно рандомно выводит, а надо чтобы выводил параметры пренадлежащие этой лини (ip адресу).
В общем кто сможет, помогите разобраться...