Навигация
 
Главная
Для начинающих
Паскаль/Pascal
Bash

Визуальное программирование
• Visual Basic
• Delphi/Делфи
• C++/Си++/Си
• документация
• Компоненты

WEB программирование
• MySQL/мускул
• Web-дизайн
•• Шрифты
• PHP/Пхп
• Документация PHP
• JavaScript
•• библиотека jquery
•  Документация
Прочее

 
 
Поиск по сайту
 




 
 
О нас
  У нас Вы можете скачать исходники, скачать скрипты, найти исходники, исходники delphi, документация по JQeury, исходники си, учебник HTML  
 
Теги
  codeserfercom, nbspnbsp, Private, Visual, Возможность, Пример, Рассмотрим, Сегодня, Теперь, будет, данных, значение, который, может, можно, написать, например, очень, переменной, переменных, пользователя, помощью, программа, программирования, программы, просто, работы, разработки, решил, сделать, скрипт, строки, строку, также, только, функции, число, этого, языка, языков

Показать все теги
 
 
Счетчики
 
 
 
Реклама
 
Skype для nokia 5800, оплата за действие.
Вчера купил тумбы под телевизор по низкой цене в Эльдорадо.
 
 
Лучшие коды
   
   
 
PingScript v0.01a
 Категория: Web-программирование » PHP | автор: Hackintosh | 17 ноября 2009 | Просмотров: 2363  



 
PingScript v0.01a


В принципе в этом скрипте ничего замысловатого нет. Для начала создаются обьекты на форме, конечно это будет сильным отступлением в область веб-дизайна поэтому весь код графических обьектов вы можете взять из приложенного к статье файла. Далее мы создаем переменную и берем данные из тектового поля
$addr = $_POST['Addr'];

После того как мы получили адрес заносим в переменную $ping стандартную системную функцию system с параметрами "ping $addr"
$ping = system("ping $addr");

Уже в переменной $ping хранятся результаты потенциально выполненного действия.
Основные действия выполнены, теперь займемся дополнительной функцией вывода результатов в .log файл
$print = $_POST['Print'];

В переменную $pring мы вывели значение обьекта CheckBox на форме (0 выключен, 1 включен)
Далее в переменную $results выводим текст, полученный в качестве результата в текстовом поле
$results = $_POST['Text'];

И выводим все это в текстовое поле командой echo $ping
После этого идет обрыв php кода и начинается закрытие текстового поля. После анализа кода вы поймете почему. В следующем блоке php кода я написал функцию которая отвечает за вывод результатов в файл. Даже если вы ничего не введи в адресной строке, пинг не произойдет но системная информация с параметрами команды ping все равно будет выведена.
function printer($res)
{
    $file = fopen("results.log", "w");
    fwrite($file, $res);
    fclose($file);
}

Осталось написать пару обработчиков событий. Сперва я написал обработчик события пинг. Если в адресной строке пусто, скрипт попросит ввести адрес, если нет выведет сообщение об успешно выполненной задаче.
if (empty($ping))
{
    echo "<H3>Enter the address please!</H3>";
}
else
{
    echo "<H3>Pinged succesfully!</H3>";
}

Последний обработчик получает значение из переменной $print и если оно равно 1 начнет выводить результаты в .log
if($print == 1)
{
   printer($results);
}
else
{
    exit;
}

Далее идет благополучное закрытие блока php кода, формы и завершающие страницу теги.
P.S. Скрипт написал на английском, потому что в системе возникла проблема с кодировкой юникод. Скрипт очень хотелось выложить. Сразу хочется заметить что я не силен в php, можно сказать доучиваю. Более грамотно и подробно о скриптах знает и может рассказать мой коллега Codeserfer.
Благодарю за внимание!
 
 

Что-то не получается? Не понятна какая-то часть кода? Напишите комментарий об этом и мы обязательно Вам все объясним!
Обязательно напишите отзыв о программе / учебнике. Для выражения благодарностей есть кнопка:


Сказали спасибо: Codeserfer
 
  Просьбы перезалить в комментариях принимаются
 
 (голосов: 2)
 
 
 
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
 
  Другие коды по теме:  
 
  • ping доменов и IP на PHP
  • Обращение к WhoIs для IP на PHP
  • Закачка файлов с удаленного сервера на свой
  • Галерея изображений
  • Магические исчезновения
  •  
    Комментарии (9) Распечатать




     Написал: Hackintosh
     17 ноября 2009 14:04 | ICQ: 755
     

    Группа: Администраторы
    Регистрация: 21.12.2008
    Новость написал, скрипт выложить забыл wall
    PingScript.php


    --------------------
     
     Публикаций: 37 | Комментариев: 34


     Написал: Codeserfer
     17 ноября 2009 16:05 | ICQ: 100105500
     

    Группа: Администраторы
    Регистрация: 1.08.2008
    Это конечно все хорошо, а если system() отключили? Как это сделали у нас..
     
     Публикаций: 131 | Комментариев: 108


     Написал: Hackintosh
     17 ноября 2009 17:24 | ICQ: 755
     

    Группа: Администраторы
    Регистрация: 21.12.2008
    Дело в том что скрипт в данном случае является клиентом, который имеет право отправить команду ping в случае с локальным сервером. Скрипт использует стандартную функцию системы. В случае с сервером сервер становится машиной-клиентом, на которой возможность передачи команды ping запрещена, адрес который мы хотим запинговать становится сервером. Почему была заблокирована стандартная функция system()? Ведь простой пинг не делает ничего плохого? Ответ прост. Несанкционированные операции с пользовательскими файлами, настройками, тот же ping можно запустить на исполнение с параметрами -65000 пакетов в секунду и -t бесконечный пинг. Правильно. Пока мы на своем компьютере слушаем музыку, ваш хостер совершает DDoS аттаку на удаленный сервер. К сожалению альтернативных функций в операционках нет. Преимуществом может являтся если у пользователя есть выделенный ip и возможность построить свой сервер. Благо с сегодняшними linux это не сложно, в принципе виндовый сервер тоже может работать


    --------------------
     
     Публикаций: 37 | Комментариев: 34


     Написал: Codeserfer
     17 ноября 2009 21:39 | ICQ: 100105500
     

    Группа: Администраторы
    Регистрация: 1.08.2008
    Разве что написать его не на PHP..
     
     Публикаций: 131 | Комментариев: 108


     Написал: Hackintosh
     17 ноября 2009 22:10 | ICQ: 755
     

    Группа: Администраторы
    Регистрация: 21.12.2008
    Ты не совсем понял. Независимо от встроенной в PHP функции system мы так или иначе должны обратится к системной функции операционной системы. Операционной системе не важно на чем был написан алгоритм, если возможность пинговать стандартной командой закрыта по другому ничего не получится. С другой стороны админу сервера требуется эта команда. Это означает что она работает. Это означает что нужны права админа, по другому не получится. Даже если написать скрипт на Perl или любом другом языке который поддерживает сервер, возможность будет скрыта. Разве что есть возможность запустить уже откомпиллированную программу на сервере. Для этого нужен доступ к bash. Вообщем продолжать нет смысла


    --------------------
     
     Публикаций: 37 | Комментариев: 34


     Написал: Codeserfer
     17 ноября 2009 22:43 | ICQ: 100105500
     

    Группа: Администраторы
    Регистрация: 1.08.2008
    Hackintosh,
    По-моему это в php.conf отключается возможность использовать system (). Но, например, в perl это по-моему сделать нельзя..
     
     Публикаций: 131 | Комментариев: 108


     Написал: Hackintosh
     17 ноября 2009 22:58 | ICQ: 755
     

    Группа: Администраторы
    Регистрация: 21.12.2008
    Тем не менее на сервере все гости кроме админа, если все одновременно или поочередно будут использовать системные команды произойдет большая нагрузка на сервер в целом и превысится лимит использования процессорного времени. Сервер просто ляжет. Админ скорее всего ограничил доступ с хоста к системе в целом. Суперпароль, ограничение root и прочее


    --------------------
     
     Публикаций: 37 | Комментариев: 34


     Написал: Codeserfer
     18 ноября 2009 11:54 | ICQ: 100105500
     

    Группа: Администраторы
    Регистрация: 1.08.2008
    Я бы, честно говоря, еще добавил проверку входящих данных. Потому что system () - это не шутка. Не проверишь данные от пользователя, этим смогут воспользоваться.
    Тут, например, есть проверка входящих данных регулярными выражениями
     
     Публикаций: 131 | Комментариев: 108


     Написал: Enginahar
     14 декабря 2009 03:28 | ICQ: --
     

    Группа: Посетители
    Регистрация: 12.12.2009
    Спасибо!
     
     Публикаций: 0 | Комментариев: 1


    © 2008 - 2010. Копирование материалов запрещено!
    Мой аккаунт
     
    Логин
    Пароль
     
     
     
    Опрос
     
    Какой архиватор используете вы?

    WinRAR
    WinZip
    7-zip
    CabTools
    Сижу на linux, все в .rpm .deb
    Другой
     
     
    Друзья
     
    serial, crack, keygen
    cool-archive.ru
    ABC-IT.lv - истиному ИТишнику!
     
     
    Архив кодов
      Август 2011 (1)
    Июль 2011 (4)
    Июнь 2011 (3)
    Апрель 2011 (2)
    Февраль 2011 (5)
    Январь 2011 (3)
     
     
     
    Реклама