kenpark 0 Опубликовано: 17 июня 2007 Рассказать Опубликовано: 17 июня 2007 изначально предупреждаю, что с пхп ток знакомлюсь... вообщем хак, который позволяет выводить информацию о статусе нужного фтп и заодно вопрос... вообщем в index.php добавил перед $config['http_home_url'] = reset(explode("index.php", $_SERVER['PHP_SELF'])); вот это if ( stristr( $tpl->copy_template, "{ftp" ) ) { $tpl->copy_template = preg_replace( "#\\{ftp ip=['\"](.+?)['\"] port=['\"](.+?)['\"] user=['\"](.+?)['\"] pass=['\"](.+?)['\"]\\}#ies", "check_ftp('\\1', '\\2', '\\3', '\\4')", $tpl->copy_template ); } и в файл 'engine/modules/functions.php' добавил вот такую функцию... function check_ftp ($ip, $port, $user, $pass) { $conn_id = ftp_connect($ip, $port, 1); if (!$conn_id) { $check_ftp = "не работает"; } else { if (@ftp_login($conn_id, $user, $pass)) { $check_ftp = "<font color=\"#00FF3F\"> работает </font>"; } else { $check_ftp = "<font color=\"#00FF3F\"> не работает </font>"; } ftp_close($conn_id); } return $check_ftp; } и терь на странице поместив {ftp ip="нужное айпи" port="порт" user="юзверь" pass="пароль"} можно будет получить работает/не работает фтп... вообще это было бы полезно в самой новости, но немного не знаю как сделать... по сути то, что добавили в индекс.пхп нужно и в show.custom/short/full.php добавить, но почему-то не заменяет там... надеюсь кому-то пригодится Цитата Ссылка на сообщение Поделиться на других сайтах
mcaiZer-7 0 Опубликовано: 17 июня 2007 Рассказать Опубликовано: 17 июня 2007 kenpark, А зачем это? Тем более еще и в новости. Цитата Ссылка на сообщение Поделиться на других сайтах
Al-x 7 Опубликовано: 17 июня 2007 Рассказать Опубликовано: 17 июня 2007 я с этим ни разу не работал, но вопрос: времени запрос много занимает? страница от этого не виснет на секунды? Я как-то однажды так со статусом icq лажанулся, когда в пхп скрипте зашил обращение к их серверу Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 17 июня 2007 Рассказать Опубликовано: 17 июня 2007 Кривой код. Через соккеты делать нужно. И кэшировать результат. Цитата Ссылка на сообщение Поделиться на других сайтах
kenpark 0 Опубликовано: 17 июня 2007 Рассказать Опубликовано: 17 июня 2007 Автор ну допустим новости юзеры постят и файлы у себя ложат на фтп...вот люди бы сразу и видели возможна ли скачка на даный момент... да писал по сути даж не из-за потребностей...видел кто-то спрашивал, дк хотелось как-то поудобней сделать... Al-x, все вроде зависит от указаного timeout-а...просто если много таких статусов напихать, то может быть задержка загрузки страницы, т.к. кажись поочередно проверяет... Цитата Ссылка на сообщение Поделиться на других сайтах
LocalHost 0 Опубликовано: 21 июня 2007 Рассказать Опубликовано: 21 июня 2007 я сделал для дополнительных полей когда обнавляеш новость очень прикольно сделано спасибо если ктото хочет в дополниетельные поля сделать обращайтесь 3951533 Цитата Ссылка на сообщение Поделиться на других сайтах
Гость Опубликовано: 22 июня 2007 Рассказать Опубликовано: 22 июня 2007 <#thank#> Цитата Ссылка на сообщение Поделиться на других сайтах
booker06 0 Опубликовано: 22 июня 2007 Рассказать Опубликовано: 22 июня 2007 Неудачная затея. Во-первых, число одновременных пользователей фтп обычно ограничено, а тут логинятся все подряд с целью узнать, горит ли зеленая лампочка статуса. Во-вторых, если сайт пользуется популярностью - ДДОС атака получается. Ну и задержки при открытии страницы - само собой, если в этом стиле делать мониторинг. Цитата Ссылка на сообщение Поделиться на других сайтах
kenpark 0 Опубликовано: 22 июня 2007 Рассказать Опубликовано: 22 июня 2007 Автор удачная-неудачная, но кому-то мож и пригодится...:-/ по поводу первого замечания, то создаешь отдельного тестового пользователя без этого самого ограничения... Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 22 июня 2007 Рассказать Опубликовано: 22 июня 2007 Вот тебе пример как это ДОЛЖНО работать. <HTML> <HEAD> <TITLE>Online or Offline checker</TITLE> <META HTTP-EQUIV="refresh" CONTENT="60; text/html; charset=windows-1251"> <? //Функция проверки //Первый аргумент - адрес, второй - порт function check_online($ip,$port) { $online_state = @fsockopen($ip, $port, $errno, $errstr, 10); if ($online_state) { $status = "<font color='green'>Online</font>"; } else { $status = "<font color='red'>Offline</font>"; } echo $status; } ?> <body bgcolor="white"> <table width="100%" border="0" cellspacing="1" cellpadding="0"> <tr> <td>ftp.bizzon.net</td> <td><? check_online("ftp.bizzon.net","21"); ?></td> </tr> <tr> <td>forum.bizzon.net</td> <td><? check_online("forum.bizzon.net","80"); ?></td> </tr> <tr> <td>bizzon.net</td> <td><? check_online("bizzon.net","80"); ?></td> </tr> <tr> <td>apollo.ws</td> <td><? check_online("apollo.ws","21"); ?></td> </tr> </table> </body> Цитата Ссылка на сообщение Поделиться на других сайтах
kenpark 0 Опубликовано: 22 июня 2007 Рассказать Опубликовано: 22 июня 2007 Автор не...ну я на счет своей криворукости спорить не буду... я подробностей пхп, что относится к фтп не знаю (как впрочем и чего-то другого)...просто увидел скрипт проверки и попытался как-то притулить к дле, чтобы вводишь {ftp ...} и оно выводило... не спорю, что чуть вышеописаный код лучше мною предложенного, но здесь просто выводится страница со статусами нескольких серверов...просто я задавался целью выводить информацию о чем-то определенном и в определенном месте... спс за хоть какое-то разьяснение. Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 22 июня 2007 Рассказать Опубликовано: 22 июня 2007 (изменено) Итак. Модификация "Блок статуса ftp" by IT-Security Открываем main.tpl В нужное место вставляем {ftp_stat} Открываем index.php Ищем require_once ROOT_DIR.'/engine/init.php'; После этой строчки вставляем: /* Скрипт проверки ftp by IT-Security */ function check_online($ip,$port) { $online_state = @fsockopen($ip, $port, $errno, $errstr, 10); if ($online_state) { $status = "<font color='green'>Online</font>"; } else { $status = "<font color='red'>Offline</font>"; } return $status; } // Конец модификации Дальше ищем $tpl->set('{login}',$login_panel); И ниже вставляем: $tpl->set('{ftp_stat}',check_online("IP_сервера", "21")); Проверяем и пишем сюда Для добавления нового сервера пишем в tpl ещё 1 тэг и делаем ещё 1 замену в index.php Изменено 22 июня 2007 пользователем IT-Security Цитата Ссылка на сообщение Поделиться на других сайтах
LocalHost 0 Опубликовано: 22 июня 2007 Рассказать Опубликовано: 22 июня 2007 хорошая модификация Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 22 июня 2007 Рассказать Опубликовано: 22 июня 2007 За небольшую сумму денег сделаю такое же с кэшированием, соответственно не будет большого количества запросов при большой посещаемости. Цитата Ссылка на сообщение Поделиться на других сайтах
kenpark 0 Опубликовано: 22 июня 2007 Рассказать Опубликовано: 22 июня 2007 Автор классно, спасибо... ток вот если вместо $tpl->set('{ftp_stat}',check_online("IP_сервера", "21")); в том же индекс.пхп добавить if ( stristr( $tpl->copy_template, "{ftp" ) ) { $tpl->copy_template = preg_replace( "#\\{ftp ip=['\"](.+?)['\"]\\}#ies", "check_online('\\1')", $tpl->copy_template ); } *в функции естессно $port корректно заменить дк в самом мейнт.тпл все работает, а новости так и оставляет {ftp ip="*.*.*.*"}, возможно ли как-то это побороть? Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 22 июня 2007 Рассказать Опубликовано: 22 июня 2007 Это немного разные хаки. Мой показывает статус выбранного сервера в блоке. А твой в новости показывает статус сервера. Цитата Ссылка на сообщение Поделиться на других сайтах
kenpark 0 Опубликовано: 22 июня 2007 Рассказать Опубликовано: 22 июня 2007 Автор дк дело в том, что твой показывает в новости, а мой отказывается тобишь то, к чему я стремился так и не было осуществлено:-/ ну по сути я тут это и спрашивал... лан...то, чего я хотел я уже добился и теперь, благодаря опыту создания этого, сделал хак вывода популярных новостей путем тега {topnews category="ID нужной категории"} еще раз спасиб, IT-Security. Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 22 июня 2007 Рассказать Опубликовано: 22 июня 2007 (изменено) Не за что. Накануне почитай про кэширование. Идея в том, чтобы проверять дату создания кэша и если она больше минуты от текущего времени, то стереть кэш файл, загрузить новую инфу и обновить кэш. Тогда не будет проблем с посещаемостью, так как если ftp не локальный, то могут быть проблемы с скоростью загрузки страницы. Изменено 22 июня 2007 пользователем IT-Security Цитата Ссылка на сообщение Поделиться на других сайтах
Aktarsis 0 Опубликовано: 18 июля 2007 Рассказать Опубликовано: 18 июля 2007 Проверяем и пишем сюда Для добавления нового сервера пишем в tpl ещё 1 тэг и делаем ещё 1 замену в index.php Скажи пожалуйста,а как выводить информацию о нескольких ftp?? Цитата Ссылка на сообщение Поделиться на других сайтах
kenpark 0 Опубликовано: 18 июля 2007 Рассказать Опубликовано: 18 июля 2007 Автор И ниже вставляем: $tpl->set('{ftp_stat}',check_online("IP_сервера", "21")); тобишь под $tpl->set('{login}',$login_panel); будет $tpl->set('{ftp_stat_1}',check_online("111.111.111.111", "21")); $tpl->set('{ftp_stat_2}',check_online("222.222.222.222", "21")); и в тпл выводишь {ftp_stat_1} и {ftp_stat_2} Цитата Ссылка на сообщение Поделиться на других сайтах
veanissepil 1 Опубликовано: 31 октября 2007 Рассказать Опубликовано: 31 октября 2007 а как сделать маниторинг фтп серверов в статической странице? Цитата Ссылка на сообщение Поделиться на других сайтах
flo.mAster 7 Опубликовано: 31 октября 2007 Рассказать Опубликовано: 31 октября 2007 Как сделать что бы в новость мона было вывести состояние фтп? Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 31 октября 2007 Рассказать Опубликовано: 31 октября 2007 В новостях и статике - можно написать скрипт, который чекает и вставляется через <img src='ftp_checker.php?server=11.11.22.33&port=21'> А внутри сделать выдачу или одной картинки или другой. Стучим в аську - придумаем что-нибудь Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.