Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #30, МАЙ 2003 г.

Flash Ping - ода интерфейсу

Владимир Егоров aka Dr.NET

Спецвыпуск Xakep, номер #030, стр. 030-054-3


Интеграция

О том, как запустить процесс и перенаправить его вывод, подробно изложено в статье про пинг через Web-интерфейс в этом же номере, так что, дабы не повторяться, скажу только, что надо создать экземпляр класса "Process". После этого указываем путь к исполняемому файлу, задаем параметры вызова и перенаправляем вывод. Запускаем процесс, получаем ответ и закрываем процесс. Осталось всего ничего - записать ответ в файл. Замечу, этот файл впоследствии, как известно, будет читаться Flash'ем, а тот, в свою очередь, тоже дурак и переменные читает только из текстовиков определенного формата.

Ответ у нас содержится в переменной "outputText". Создаем текстовый файл с помощью статического метода File.CreateText(string path), где path - локальный путь к создаваемому файлу на сервере. Этот метод возвращает экземпляр класса "StreamWriter", с помощью которого мы будем записывать данные в файл. Кстати, не забудь предоставить пользователю ASPNET право на чтение/запись в тот каталог, где создается файл, иначе произойдет ошибка доступа.

После этого методом sw.Write(string output) записываем в файл переменную "outputText" и после этого закрываем StreamWriter. Все, WebHandler, в принципе, готов. Обращаться к нему можно из браузера, задав его виртуальный адрес на серваке с параметром "address", содержащим адрес интересующего тебя хоста, например, "http://myhost.com/handler/ping.ashx?address=123.123.123.123" - именно то, что мы и формируем во Flash'e. Последние строки кода посвящены тому, что фишка getURL во Flash'e так и так вызывает отображение загружаемого УРЛа в окне браузера. Что не может не огорчать. Так вот, окно появится. Пустое, т.к. отображать нечего. И появится сообщение, желающее закрыть окно, ибо безопасность в нете дремать не должна!

Назад на стр. 030-054-2  Содержание