ecspl01t
Новичок
Доброго времени суток!
Вот пишу код, Анализатор log, скорее всего питаюсь его написать...
Начну с того как он должен работать:
1) Есть логи типо L0330003.log (логи кс 1.6), в них хранятся: игроки которые подключаются, время подключения, ip-адрес, STEAM_ID, Имя ну т.д., мне нужно только только то, что я перечислил (time,login,ip,steam) то есть те кто подключились к серверу.
имеет вид:
2) Теперь нужно кто использовал RCON, есть не большой нюанс, когда кто-то использует rcon в логах видно только ip-адрес того кто использовал, почему это не большая проблема я дальше опишу..
имеет вид:
3) В БД хранятся список STEAM_ID игроков (steam_id), которые могут использовать RCON.
имеет вид:
Вот в чем проблема с вторым пунктом, так как в базе только STEAM_ID, а те кто юзает rcon, в логах видно IP, но тот кто зашел на сервер имеет и IP, и STEAM_ID...
"L 03/30/2013 - 19:33:52: "cheburek<45><STEAM_0:0:54344926><>" connected, address "44.55.66.77:41165""
4) Далее, заключается задача в том, чтобы вытянуть всех connected Players связать их кто использовал RCON сделать проверну с БД там где STEAM_ID и всех кого нету в списке добавить в другую бд.
помогите написать 4-й пункт, тупо соображалки нету дальше писать...сижу как пень перед компом и ничего не могу написать...
файл L0330003.log:
задавайте вопросы кто что не понял..
Вот пишу код, Анализатор log, скорее всего питаюсь его написать...
Начну с того как он должен работать:
1) Есть логи типо L0330003.log (логи кс 1.6), в них хранятся: игроки которые подключаются, время подключения, ip-адрес, STEAM_ID, Имя ну т.д., мне нужно только только то, что я перечислил (time,login,ip,steam) то есть те кто подключились к серверу.
имеет вид:
PHP:
L 03/30/2013 - 19:33:52: "cheburek<45><STEAM_0:0:54344926><>" connected, address "44.55.66.77:41165"
имеет вид:
PHP:
L 03/30/2013 - 19:34:11: Rcon: "rcon 1560014502 "пароль от rcon" status" from "44.55.66.77:41165"
имеет вид:

Вот в чем проблема с вторым пунктом, так как в базе только STEAM_ID, а те кто юзает rcon, в логах видно IP, но тот кто зашел на сервер имеет и IP, и STEAM_ID...
"L 03/30/2013 - 19:33:52: "cheburek<45><STEAM_0:0:54344926><>" connected, address "44.55.66.77:41165""
4) Далее, заключается задача в том, чтобы вытянуть всех connected Players связать их кто использовал RCON сделать проверну с БД там где STEAM_ID и всех кого нету в списке добавить в другую бд.
PHP:
//Читаем лог
$array_rcon=array();
$array_conects=array();
$handle = @fopen("./L0330003.log", "r");
if ($handle) {
while (($log_line = fgets($handle, 4096)) !== false) {
$conects_Value = array();
$rcon_Value = array();
$rez_con=0;
$rez_rcon=0;
//выбираем конекты с лога
$rez_con = preg_match('!^(.* connect.*)$!m', $log_line, $conects_Value);
//выбирае Rcon записи
$rez_rcon = preg_match('!^(.*Rcon.*)$!m', $log_line, $rcon_Value);
//разбираем строки конектов
if ($rez_con > 0) {
$returnValue = preg_match('!^L ([0-9/ -:]*):.*"(.*)<[0-9]{1,4}><(.*)><>.*"([0-9\\\\.]*):.*$!m', $conects_Value[1], $matches);
$array_connects[] = array(
"time" => $matches[1],
"login" => $matches[2],
"STEAM" => $matches[3],
"ip" => $matches[4]
);
}
//разбираем строки Ркон
if ($rez_rcon > 0) {
$returnValue = preg_match('!^L ([0-9/ -:]*):.* "([a-zA-Z]*)" ([a-z _\*\# 0-9]*)".*"([0-9\\.]*):.*$!m', $rcon_Value[1], $matches);
$array_rcon[] = array(
"time" => $matches[1],
"password" => $matches[2],
"command" => $matches[3],
"ip" => $matches[4]
);
}
}
}
echo "<PRE>";
echo var_dump($array_connects,$array_rcon);
echo "</PRE>";
$db_steamID = mysql_query ("SELECT * FROM db_steam_id");$rsteamID = mysql_fetch_array($db_steamID); //список стим_ИД
do {$array_steam_db[]=$rsteamID['steam_id'];
}while ($rsteamID = mysql_fetch_array($db_steamID));// закинул его в массив но дальше не знаю что делать с ним..
файл L0330003.log:
PHP:
L 03/30/2013 - 19:33:52: "cheburek<45><STEAM_0:0:54344926><>" connected, address "44.55.66.77:41165"
L 03/30/2013 - 19:34:11: Rcon: "rcon 1560014502 "password" status" from "44.55.66.77:41165"
L 03/30/2013 - 19:35:52: "asdasdasfasf<55><STEAM_0:0:54344935><>" connected, address "111.122.33.11:41165"
L 03/30/2013 - 19:35:11: Rcon: "rcon 1560014502 "password" status" from "111.122.33.11:41165"
L 04/26/2013 - 18:07:54: Rcon: "rcon 409277296 "password" kick #4" from "123.123.123.123:27005"
L 04/29/2013 - 11:46:22: "slavka #altme<2><STEAM_0:1:31881798><>" connected, address "123.123.123.123:27005"
L 04/29/2013 - 11:46:36: Rcon: "rcon 566836387 "password" tuscan" from "123.123.123.123:27005"