Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2012, 18:32   #11
primusx
Пользователь
 
Регистрация: 08.07.2011
Сообщений: 29
По умолчанию

Лучше и быть не может. ) Спасибо тебе большое.
primusx вне форума Ответить с цитированием
Старый 17.02.2012, 19:00   #12
TranceSmile
Смайлик :)
Форумчанин
 
Аватар для TranceSmile
 
Регистрация: 12.12.2010
Сообщений: 445
По умолчанию

Может. Можно переделать функцию что бы если доступен был зеленый кружочек. а если нет то красный.
Самый перспективный framework Yii (c)
TranceSmile вне форума Ответить с цитированием
Старый 29.02.2012, 16:04   #13
primusx
Пользователь
 
Регистрация: 08.07.2011
Сообщений: 29
Вопрос

Все работает супер
Но он проверяет только ссылки а как сделать чтобы он проверял сервера и фтп. Ну как пример хотя бы по пингу если IP сервера пингуется то писал бы доступен, а если нет то нет.???
Это наверно другой скрипт нужен???
И еще в принцепе не столь важно по скрипту (тот что выше) он пишет что доступен а можно ли сделать чтобы если доступен он писал зелеными буквами а если не доступен Красными?
Спасибо всем кто поможет.
primusx вне форума Ответить с цитированием
Старый 29.02.2012, 22:36   #14
TranceSmile
Смайлик :)
Форумчанин
 
Аватар для TranceSmile
 
Регистрация: 12.12.2010
Сообщений: 445
По умолчанию

Код:
function isSiteAvailable( $url ) 
{ 
    //проверим, что этот url вообще корректный 
    if( !filter_var($url, FILTER_VALIDATE_URL) ) return 'Указан некорректный url!'; 

    //создадим соединение с помощью curl 
    $cl = curl_init($url); 
     curl_setopt($cl,CURLOPT_CONNECTTIMEOUT,10); 
     curl_setopt($cl,CURLOPT_HEADER,true); 
     curl_setopt($cl,CURLOPT_NOBODY,true); 
     curl_setopt($cl,CURLOPT_RETURNTRANSFER,true); 

     //получим ответ 
     $response = curl_exec($cl); 

     curl_close($cl); 

     if( $response ) return '<font color=\"green\">Доступен</font>'; 

     return '<font color=\"red\">Не доступен</font>'; 
}
echo isSiteAvailable("http://site.ru");
echo isSiteAvailable("http://site2.ru");
echo isSiteAvailable("http://site3.ru");
А вот на счёт просто проверки серверов. То просто вместо адреса введите IP сервера.
Самый перспективный framework Yii (c)
TranceSmile вне форума Ответить с цитированием
Старый 01.03.2012, 21:25   #15
primusx
Пользователь
 
Регистрация: 08.07.2011
Сообщений: 29
По умолчанию

Пробывал просто вводить IP пишет не корректный URL, а если ввожу http:\\IP или FTP:\\IP то пишет сервер недоступен Ofline хотя он доступен и работает.

ввожу к примеру
echo isSiteAvailable("88.147.128.127");
echo isSiteAvailable("http://88.147.128.127");
echo isSiteAvailable("ftp://88.147.128.127");
а выходит
Указан некорректный url!Не доступенНе доступен
хотя если его пропинговать через командную строку пинг идет нормальный

Последний раз редактировалось primusx; 01.03.2012 в 21:36.
primusx вне форума Ответить с цитированием
Старый 01.03.2012, 23:26   #16
Mortimoro
Форумчанин
 
Регистрация: 03.12.2010
Сообщений: 334
По умолчанию

вариант:
PHP код:
function port_access($server,$port){
    
$fp=@fsockopen($server,$port,$errno,$errstr,2);
    if(
$fp$res=true;
    else 
$res=false;
    @
fclose($fp);
    return 
$res;
}

if(
port_access("88.147.128.127","21")) echo "<font color=\"green\">порт 21 доступен, значит ftp работает</font>";
else echo 
"<font color=\"red\">порт 21 не доступен, значит беда...</font>"
Mortimoro вне форума Ответить с цитированием
Старый 02.03.2012, 18:39   #17
primusx
Пользователь
 
Регистрация: 08.07.2011
Сообщений: 29
По умолчанию

Цитата:
Сообщение от Mortimoro Посмотреть сообщение
вариант:
PHP код:
function port_access($server,$port){
    
$fp=@fsockopen($server,$port,$errno,$errstr,2);
    if(
$fp$res=true;
    else 
$res=false;
    @
fclose($fp);
    return 
$res;
}

if(
port_access("88.147.128.127","21")) echo "<font color=\"green\">порт 21 доступен, значит ftp работает</font>";
else echo 
"<font color=\"red\">порт 21 не доступен, значит беда...</font>"
вариант отлично работает только как его размножить на несколько серверов у меня их около 5 и можно ли сделать чтобы порт не указывать?
primusx вне форума Ответить с цитированием
Старый 02.03.2012, 19:52   #18
Mortimoro
Форумчанин
 
Регистрация: 03.12.2010
Сообщений: 334
По умолчанию

конечно не педагогично делать это вместо тебя, правильнее было бы отправить тебя учить циклы, но мне сегодня скучно на работе, потому держи:
PHP код:
function port_access($server){
    
$fp=@fsockopen($server,21,$errno,$errstr,2); // 21й порт сразу указываем, раз только его нужно проверять

    /* если порт открыт, вернем true, если закрыт, вернем false */
    
if($fp$res=true
    else 
$res=false;
    @
fclose($fp); // закрываем порт, незачем его открытым держать
    
return $res;
}

// список серверов
$servers=array("88.147.128.127","88.147.128.128","88.147.128.130","88.147.128.132","88.147.128.164");

// цикл для прогона каждого IP через функцию для проверки статуса
foreach($servers as $s){
    if(
port_access($s)) echo "<font color=\"green\">порт 21 на сервере ".$s." доступен, значит ftp работает</font>";
    else echo 
"<font color=\"red\">порт 21 на сервере ".$s." не доступен, значит беда...</font>";

Mortimoro вне форума Ответить с цитированием
Старый 02.03.2012, 20:01   #19
Mortimoro
Форумчанин
 
Регистрация: 03.12.2010
Сообщений: 334
По умолчанию

походу в функции можно без переменной $res обойтись... раз порт не доступен, значит и закрывать его незачем, можно сразу результат возвращать.
PHP код:
function port_access($server){
    
$fp=@fsockopen($server,21,$errno,$errstr,2);
    
    if(
$fp){
        @
fclose($fp);
        return 
true;
    }
    else return 
false;

Mortimoro вне форума Ответить с цитированием
Старый 02.03.2012, 21:53   #20
primusx
Пользователь
 
Регистрация: 08.07.2011
Сообщений: 29
По умолчанию

Спасибо вам большое. Если честно я в этом вообще не шарю, ну если только немного ). НУ в понедельник проверю. Просто сайт у меня на работе, локальный.
primusx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как качать флешь игры с сайтов? MoT9I Свободное общение 3 18.08.2009 18:39