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

Индикатор 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 секунд.
Я что говорил тупо копировать этот скрипт? Просто для примера привел, у кого брэйн девайс работает, тот додумается изменить таймаут на нужный.
Ссылка на комментарий
Поделиться на других сайтах

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

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

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

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