Ринальдус Опубликовано 2 Мая 2006 Жалоба Поделиться Опубликовано 2 Мая 2006 Хотелось бы или скачать или написать мод, который записывает в простой текстовый файл на серваке о всех заходах админов, супермодеров, модеров на форум: в какое время, под каким IP, в скрытом режиме это делалось или нет. Это был бы очень полезный мод, т.к имея такую информацию обо всех, можно почти на 100% сказать, хакнуты админские и модерские аккаунты или нет. Есть ли такой мод? Если нету, то сложно ли его написать? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
.silent Опубликовано 2 Мая 2006 Жалоба Поделиться Опубликовано 2 Мая 2006 Напиши, это не сложно.Только лучше уж, наверное, в базу данных писать, а не в файлик. Все-таки удобнее. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Ринальдус Опубликовано 2 Мая 2006 Автор Жалоба Поделиться Опубликовано 2 Мая 2006 Вы не могли бы подсказать, где именно IPB держит информацию о текущем состоянии админского акка: его текущий IP, его скрытность, время последнего входа? Я просто никогда модов сам не писал, IPB вот так по косточкам, что делает тот или иной скрипт, тоже не знаю. Вы не могли бы подсказать, от чего тут надо плясать?Только лучше уж, наверное, в базу данных писать, а не в файлик. Все-таки удобнее.Именно в этом и фишка, что будет писаться в файл, который ВНЕ форума будет лежать. Его имя и путь в этом случае буду знать только я один. И если, предположим, хакнут админские аккаунты, то они ни за что не догадаются, что за ними ведется тотальное наблюдение. Если только не читают этот форум. Но если даже и читают, то все равно не смогут узнать, в какой именно файл ведется запись. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
.silent Опубликовано 2 Мая 2006 Жалоба Поделиться Опубликовано 2 Мая 2006 могу написать за $5 - 10 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Dr.Freddy Опубликовано 2 Мая 2006 Жалоба Поделиться Опубликовано 2 Мая 2006 Данные о админских сессиях (т.е. присутствии пользователя с правами админа в форумной админ-панели) хранятся в ibf_admin_session. Присутствие любого пользователя на форуме — в таблице ibf_sessions. Если логировать все действия пользователей на форуме — это мама моя какая нагрузка получится... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
.silent Опубликовано 2 Мая 2006 Жалоба Поделиться Опубликовано 2 Мая 2006 причем тут сессии?ему же заходы только нужны. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Ринальдус Опубликовано 2 Мая 2006 Автор Жалоба Поделиться Опубликовано 2 Мая 2006 Присутствие любого пользователя на форуме — в таблице ibf_sessions.А можно выдрать оттуда только про присутствие юзеров №1 и №2? Чтобы только по ним велся лог. Потому что это и есть админы.Если логировать все действия пользователей на форуме — это мама моя какая нагрузка получится...Ну дык я это понимаю. И лог будет будь здоров, попробуй разберись... Да и не нужно вести лог про всех юзеров. Достаточно только по двум админам и еще желательно бы по одному модеру. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
.silent Опубликовано 2 Мая 2006 Жалоба Поделиться Опубликовано 2 Мая 2006 не надо ничего оттуда выдирать, вы все сговорились что-ли? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Ринальдус Опубликовано 2 Мая 2006 Автор Жалоба Поделиться Опубликовано 2 Мая 2006 А как тогда? Где IPB хранит информацию о заходе юзера? Чтобы как только зашел, сразу сработал бы скрипт и этот заход прописался бы в логе. И не для каждого юзера, а для юзеров только с определенными ID. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
.silent Опубликовано 2 Мая 2006 Жалоба Поделиться Опубликовано 2 Мая 2006 Зачем вам информация о заходе пользователя?Нужно как раз запустить скрипт в нужный момент. Этот момент, я думаю, находится в login_core.php. Там же и группу проверить можно, если что. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Ринальдус Опубликовано 2 Мая 2006 Автор Жалоба Поделиться Опубликовано 2 Мая 2006 Зачем вам информация о заходе пользователя?Еще раз объясняю:1. Пользователь заходит на форум.2. В момент аутентификации выполняется какой-то родной IPBшный скрипт (это как autoexec.bat в DOS'е, если кто помнит), судя по вашим словам login_core.php. Я хочу его дополнить следующим скриптом:1. Если юзер является админом, то необходимо сбросить про него в текстовый файл информацию про его IP, в какое время он зашел и в каком режиме: в инвизе или нет.2. Если данный юзер админом не является, этот скрипт ничего про него не выводит.Вот примерный алгоритм. Если нельзя определить принадлежность его к админской группе, то на худой конец просто по его ID. Админами у нас являются пользователь №1 и пользователь №2.Как видите, я уже набросал примерный алгоритм этого скрипта. Мне не ясно только одно: где IPB хранит информацию об IP юзера, о времени его посещения и о том, в скрытом режиме он зашел или нет? Вопрос теперь заключается только в этом, потому что насчет того, в каком скрипте все это вставлять, мне ясно. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
.silent Опубликовано 2 Мая 2006 Жалоба Поделиться Опубликовано 2 Мая 2006 где IPB хранит информацию об IP юзера, о времени его посещенияа слабо звять текущую дату и текущий ip? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Ринальдус Опубликовано 2 Мая 2006 Автор Жалоба Поделиться Опубликовано 2 Мая 2006 Гм... ну текущую дату и текущее время - понятно. А где взять текущий IP у юзера? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
.silent Опубликовано 2 Мая 2006 Жалоба Поделиться Опубликовано 2 Мая 2006 $ipsclass->ip_address Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Ринальдус Опубликовано 3 Мая 2006 Автор Жалоба Поделиться Опубликовано 3 Мая 2006 В общем, один мой друг, который в знании PHP примерно равен разработчикам IPB, сделал мне этот мод за полчаса. Я бы так не смог. Да и вообще, он оказался сложнее, чем я предполагал. Ему влом выкладывать его на ИБР, а я все же считаю его полезным, может быть еще кому-нибудь пригодится. Так что с его разрешения я выкладываю его здесь от его имени. sources/classes/class_session.phpНайти: //----------------------------------------- // Fix up the last visit/activity times. //----------------------------------------- $this->ipsclass->input['last_visit'] = $this->member['last_activity']; $this->ipsclass->input['last_activity'] = $this->time_now; }Добавить ПОСЛЕ:if ($this->member['mgroup'] == $this->ipsclass->vars['admin_group']) { $log_name = ROOT_PATH.'access_log.txt'; $ex = file_exists($log_name) ? 1 : 0; list( $be_anon, $loggedin ) = explode( '&', $this->member['login_anonymous'] ); $file = fopen($log_name, 'a'); $anon = $be_anon ? 'Скрыт' : 'Виден'; if (!$ex) { fwrite($file, str_repeat('-', 71)."\r\n"); fwrite($file, sprintf("| %-16s | %-15s | %-20s | %7s |\r\n", 'Дата', 'IP', 'Ник', 'Статус')); fwrite($file, str_repeat('-', 71)."\r\n"); } $str = sprintf("| %-16s | %-15s | %-20s | %7s |\r\n", date('d.m.y - H:i'), $this->ipsclass->ip_address, $this->member['members_display_name'], $anon); fwrite($file, $str); fclose($file); } sources/action_public/login.phpНайти: //----------------------------------------- // Clear out any passy change stuff //----------------------------------------- $this->ipsclass->DB->simple_construct( array( 'delete' => 'validating', 'where' => "member_id={$this->ipsclass->member['id']} AND lost_pass=1" ) ); $this->ipsclass->DB->simple_shutdown_exec(); Добавить ПОСЛЕ:if ($member['mgroup'] == $this->ipsclass->vars['admin_group']) { $log_name = ROOT_PATH.'access_log.txt'; $ex = file_exists($log_name) ? 1 : 0; $be_anon = intval($this->ipsclass->input['Privacy']); $file = fopen($log_name, 'a'); $anon = $be_anon ? 'Скрыт' : 'Виден'; if (!$ex) { fwrite($file, str_repeat('-', 71)."\r\n"); fwrite($file, sprintf("| %-16s | %-15s | %-20s | %7s |\r\n", 'Дата', 'IP', 'Ник', 'Статус')); fwrite($file, str_repeat('-', 71)."\r\n"); } $str = sprintf("| %-16s | %-15s | %-20s | %7s |\r\n", date('d.m.y - H:i'), $this->ipsclass->ip_address, $member['members_display_name'], $anon); fwrite($file, $str); fclose($file); } Все заходы админов, а вернее, их сессии, отмечаются в файле access_log.txt, который автоматически создается этим модом в той папке, в которую вы поставили форум. А я иду изучать PHP и искать в интернете какой-нибудь мануал, в котором объясняется, как функционирует IPB вплоть до последнего скрипта, до последней процедуры... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.