Перейти к контенту

Индикатор OnLine FTP


Рекомендуемые сообщения

Сабж.

Мне нужно следующее.

НА компе у меня установлен фтп (внешний IP и все прочее, чтоб люди качали и закачивали файлы) и есть форум где в теме нужно мне установить индикатор когда фтп в Online и когда выключен... Понимаете?

Помогите плз.

Ссылка на комментарий
Поделиться на других сайтах

Понимаем..

 

Форум находится далеко от компа с фтп ?

 

Если нет - просто попытаться открыть сокет на 21ый порт с таймаутом 1 сек, открылся - онлайн, не открылся - оффлайн. Если форум далеко - то данные надо кэшировать и обновлять раз в пять минут.

Ссылка на комментарий
Поделиться на других сайтах

Если нет - просто попытаться открыть сокет на 21ый порт с таймаутом 1 сек, открылся - онлайн, не открылся - оффлайн. Если форум далеко - то данные надо кэшировать и обновлять раз в пять минут.
Зачем что то кэшировать? Каждую минуту пытатся коннектится на фтп сервер.

 

Бывает также что на фтп сервер тяжело законнектится, тогда сделаем так-с:

<?php
$server = "ftp.microsoft.com";
$port = 21;
$timeout = 5;
$tries = 5;

while (!$fp && $i++ < $tries)
{
  $fp = fsockopen($ftp_server, $port, $errno, $errstr, $timeout);
  if (!$fp)
  continue;
  else
  $state = true;
}

fclose ($fp);
?>

 

И выполнять это нужно только при загрузке страницы, можно конечно сделать на аяксе чтобы динамически проверялось состояние фтпшника.

Ссылка на комментарий
Поделиться на других сайтах

2Garret, ничего не имею против, но с коннектом к серверам в достаточной мере удалённым - может потребоваться порядка 20 секунд.

 

Если выводить эту информацию на все страницы форума - то твой скрипт будет заставлять ждать при загрузке каждой страницы, что не есть верно. А если сделать 20сек ?

 

То-то же.

 

Надо раз в 10 минут проверять и запись в БД результат, а при просмотре страниц - просто выводить то, что лежит в БД.

 

Создавать отдельную страницу, на которой будет написан статус фтп - не вижу смысла, т.к. - не совсем удобно.

Ссылка на комментарий
Поделиться на других сайтах

В БД нужно сделать поле 1|0

по этому полю выводить статус.

Через каждые n минут запускать скрипт, который будет проверять готовность сервера и писать в это поле циферку. Это всё.

Ссылка на комментарий
Поделиться на других сайтах

В БД нужно сделать поле 1|0

по этому полю выводить статус.

Через каждые n минут запускать скрипт, который будет проверять готовность сервера и писать в это поле циферку. Это всё.

Да, да, я говорю именно об этом, просто наверное не совсем верно изъясняюсь.

Ссылка на комментарий
Поделиться на других сайтах

2Garret, ничего не имею против, но с коннектом к серверам в достаточной мере удалённым - может потребоваться порядка 20 секунд.
Я что говорил тупо копировать этот скрипт? Просто для примера привел, у кого брэйн девайс работает, тот додумается изменить таймаут на нужный.
Ссылка на комментарий
Поделиться на других сайтах

Можно обычный скрипт проверки сделать, не через базу, но в теме выводить через слой, чтоб страничка грузилась без проблем, а потом проверялось на слое фтп.
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.