[php] Написать скрипт ping к хостам

Discussion in 'PHP' started by beshenuy, 18 Dec 2011.

  1. beshenuy

    beshenuy Member

    Joined:
    24 Oct 2009
    Messages:
    178
    Likes Received:
    7
    Reputations:
    2
    Нужен скрипт который будет пингаты IP
    например:
    192.168.1.1
    192.168.2.2
    192.168.3.3
    192.168.4.4
    192.168.5.5

    Пинги должны слать по 20 пакетов на каждую з IP раз в 3 минуты, если 5 пакетов з 20 не дошло то слать сообщения на e-mail

    НЕ должно слать 5 сообщений если 5 ИП не пингуються а просто в 1 сообщении все 5 ИП
    Хорошо если можно б било ИП назвать тоесть "Сервер; Роздача; Прийом ну и т.д"

    Список ИП брать должно из блокнота

    язык програмирования PHP
    предлогаем цени за услуги здесь или в личке форума
     
  2. daniel777

    daniel777 Member

    Joined:
    8 Jul 2010
    Messages:
    520
    Likes Received:
    90
    Reputations:
    37
    Посмотри этот, если что я подправлю:

    PHP:
    <?php
    set_time_limit
    (0);

    $komy ""//на какое мыло отправлятиь
    $tema "";//тема письма
    $kogo "";//с какого адреса отправлять

    $file=file("ip.txt"); //файл с ip адресами

    while(1){
    foreach(
    $file as $ip){
    exec("ping ".$ip." -n 20 -w 90 && exit"$output);
    print_r($output);
    preg_match_all("/[0-9]/"$output[6], $f);
    $forget $f[2]; //потеряные пакеты
    if($forget "5"){
    $fh=fopen("temp.txt""a+");
    fwrite($fh"$ip\n");
    fclose($fh);
    }
    if(
    file_exists("temp.txt")){
    $res=file_get_contents("temp.txt");
    mail(
    "$komy",
    "$tema",
    "$res",
    "From: $kogo"
    );
    unlink("temp.txt");
    }
    }
    sleep(180);
    }

    ?>
     
    #2 daniel777, 18 Dec 2011
    Last edited: 18 Dec 2011
  3. beshenuy

    beshenuy Member

    Joined:
    24 Oct 2009
    Messages:
    178
    Likes Received:
    7
    Reputations:
    2
    я в скриптах полний 0((
     
  4. brain

    brain Elder - Старейшина

    Joined:
    4 Jul 2010
    Messages:
    251
    Likes Received:
    90
    Reputations:
    33
    Меня все больше радуют лидю, которые пишут умное название темы, в самой теме пишут что им нужно сделать, и потом после ответов пишут, что они в программировании полный ноль.
    То, что тебе нужно можно написать после прочтения одной главы книги php.
     
  5. beshenuy

    beshenuy Member

    Joined:
    24 Oct 2009
    Messages:
    178
    Likes Received:
    7
    Reputations:
    2
    как ти в маршрутизаторах cisco?
    розбираешса?
     
  6. brain

    brain Elder - Старейшина

    Joined:
    4 Jul 2010
    Messages:
    251
    Likes Received:
    90
    Reputations:
    33
    Ебани словарь по русскому языку для начала. ;)
    В том, что мне надо - я разбираюсь.
     
  7. beshenuy

    beshenuy Member

    Joined:
    24 Oct 2009
    Messages:
    178
    Likes Received:
    7
    Reputations:
    2
    вот и я знаю то что мне надо а что мне ненадо я не знаю.
    потому и спрашиваю здесь
    ненравитса можеш уйти


    П.С я з украини
    учи украинский
    стараюсь писать чтоб хоть меня понимали немного
     
    #7 beshenuy, 18 Dec 2011
    Last edited: 18 Dec 2011
  8. brain

    brain Elder - Старейшина

    Joined:
    4 Jul 2010
    Messages:
    251
    Likes Received:
    90
    Reputations:
    33
    Все. Ты победил. Мой мозг взорвался после этого предложения.
     
    2 people like this.
  9. beshenuy

    beshenuy Member

    Joined:
    24 Oct 2009
    Messages:
    178
    Likes Received:
    7
    Reputations:
    2
    вот и отлично
    я рад за тебя и за твой мозг
     
  10. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    952
    Likes Received:
    318
    Reputations:
    52
    Так а что тогда необходимо?

    daniel777 используй специальные теги для вставки пхп кода, ужасно нечитабельно.
     
    #10 Skofield, 18 Dec 2011
    Last edited: 18 Dec 2011
  11. beshenuy

    beshenuy Member

    Joined:
    24 Oct 2009
    Messages:
    178
    Likes Received:
    7
    Reputations:
    2
    Нужен скрипт который будет пингать IP
     
  12. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    952
    Likes Received:
    318
    Reputations:
    52
    В посте №2 приведен скрипт.
     
  13. beshenuy

    beshenuy Member

    Joined:
    24 Oct 2009
    Messages:
    178
    Likes Received:
    7
    Reputations:
    2
    вот что получилось при запуске((
    http://s010.radikal.ru/i312/1112/d2/fc5db12cdca8.jpg
     
  14. daniel777

    daniel777 Member

    Joined:
    8 Jul 2010
    Messages:
    520
    Likes Received:
    90
    Reputations:
    37
    Поправил, буду использовать, спасибо.

    Ты файл ip.txt положил в C:\PHP-Launcher\php ?
    Каждый IP с новой строчки?
     
  15. beshenuy

    beshenuy Member

    Joined:
    24 Oct 2009
    Messages:
    178
    Likes Received:
    7
    Reputations:
    2
    заработал
    ошибка
    "Ты файл ip.txt положил в C:\PHP-Launcher\php ?"\
    ево я туда не положил
    отправило только 4 пакета а не 20
    и только на 1 ИП а на другие не отправляет

    оно должно работать по принципу 1 раз на все ИП з списка отправило если все ОК то ждет 3 минути и отправляет второй раз на все ИП з текстовика по 20 пакетов если не все пакети пришли а 5 пакетов потерь то шлет сообщения
     
    #15 beshenuy, 18 Dec 2011
    Last edited: 18 Dec 2011
  16. daniel777

    daniel777 Member

    Joined:
    8 Jul 2010
    Messages:
    520
    Likes Received:
    90
    Reputations:
    37
    Я нашел ошибку, исправил её в втором посте.
    Теперь скрипт проверяет все айпи, и ждет 3 минуты.

    Предупреждаю что вывод информации происходит таким образом:
    1)первый айпи
    2)первый, второй айпи
    3)первый, второй, третий айпи
    и так далее.
     
    #16 daniel777, 18 Dec 2011
    Last edited: 18 Dec 2011
  17. beshenuy

    beshenuy Member

    Joined:
    24 Oct 2009
    Messages:
    178
    Likes Received:
    7
    Reputations:
    2
    походу работает
    но 1. отправляет только 4 пакета а не 20
    вот скрин http://s006.radikal.ru/i215/1112/5b/51e1607c8330.jpg
    2. что з денвером?
    просто запустить или что?
     
  18. daniel777

    daniel777 Member

    Joined:
    8 Jul 2010
    Messages:
    520
    Likes Received:
    90
    Reputations:
    37
    1) в этой строчке делается запрос:
    exec("ping ".$ip." -n 20 -w 90 && exit", $output);

    "-n 20" - это число отправляемых запросов, так что должно быть двадцать.

    2)денвер - это локальный сервер.
    его можно использовать для запуска РНР скриптов на компьютере.
    Это как один из вариантов. Надо подбирать тот, который удобнее для использования скрипта.
    Варианты которые я знаю:
    - Хостинг(платный сервис, на нём обычно размещаются сайты.) Для этого варианта не нужен постоянно включеный компьютер. Но многие хостеры запрещают у себя функцию exec(), без которой не будет работать это скрипт.

    - Денвер(или аналогичные программы) для запуска скриптов с компьютера. Это бесплатно, но нужен постоянно включенный компьютер.

    - PHP Launcher(или его аналоги) - тоже самое что и денвер, но проще(ограничены функции)

    Надо выбрать тот вариант, который будет удобнее, и больше подходить под нужные цели.
     
  19. beshenuy

    beshenuy Member

    Joined:
    24 Oct 2009
    Messages:
    178
    Likes Received:
    7
    Reputations:
    2
    ну скрипт запустил работает
    а вот как зделать чтоб сообщения приходили
    как можно проверить?
     
Loading...