Корабельникова Лена Александровна
Адрес для писем мне: forSN[at]list.ru
Последняя сдача задач в этом семестре – в районе 22 января.
1. Задача сдается лично на одной из консультаций
2. На почту отправляется письмо (пожалуйста, в рамках обсуждения одной задачи не меняйте тему письма), в письме задача, описание решения и примеры запуска.
Осениий семестр 2011 / 2012
Табель посещаемости студентов 2011/2012 (осень)
Для допуска к экзамену надо сдать задачи (ip2country | sntp_proxy) & (dns | dns_proxy) & ( smtp_mime | pop3)
1. ip2countrycode (10 баллов)
Написать скрип, которые преобразует ip-адрес (читает список адресов с STDIN или из файла) в страну, используя только достоверные ответы службы whois региональных регистраторов.
2. ntp/sntp (сдается лично, 10–15 баллов)
Написать сервер времени, слушающий 123 порт и отвечающий на корректные запросы по протоколу sntp корректными ответами (в пакете поля: LI, VN, Mode, Stratum и поля со временем должны быть заполнены осмысленным образом). Проверка корректности запроса обязательно.
3. dns-сервер (сдается лично, 20–30 баллов)
Написать кэширующий dns-сервер, слушающий 53 порт и отвечающий на корректные запросы по протоколу DNS (rfc 1035) корректными ответами, данные сервер должен брать из своего кэша или переспрашивать у «старшего сервера».
Должно быть реализовано:
* устаревание данных в кэше (обработка TTL)
* временный отказ старшего сервера (сервер не должен терять работоспособность (уходить в бесконечное ожидание, падать с ошибкой и т.д.), если старший сервер почему-то не ответил на запрос к нему
Хорошо бы, но не обязательно:
* обработка зацикливание (придумать и реализовать здравую модель поведения сервера, в том случае, если в качестве «старшего сервера» указан он же сам, или экземпляр его, запущенный на другой машине)
4. pop3_mailread (сдается лично, 10–15 баллов)
Написать скрипт, который, спросив адрес и пароль, выводит таблицу со списком писем на заданном сервере (кому, от кого, тема письма, размер).
Должно быть реализовано:
* обработка ответов сервера
* декодирование заголовков письма из Base 64 и Quoted Print
Хорошо бы, но не обязательно:
* возможность операций с выбранными письмами (сохранить на диск, удалить м т.д.)
5. dns_poison (сдается Волканину, 20–25 баллов)
Реализовать «отравление» кеша специально подготовленного dns-сервера. Требования можно уточнить у Волканина, сдавать задачу ему же.
6. mime_mailwrite/smtp_send (сдается лично, 10–20 баллов)
Написать скрипт, который, спросив адреса, тему и адрес файла, готовит письмо с вложением.
Хорошо бы, но не обязательно:
* использовать собственный кодировщик в Base 64
* отправлять на указанный почтовый сервер (проверяем mail.ru/rambler/yandex) полученное письмо по протоколу smtp (с авторизацией или без, лучше без)
* отправлять по безопасному smtp на google.
7. http_proxy (еще не выдано, 20–25 баллов)
Написать http-proxy сервер, слушающий какой-то определенный порт. Проверять буду, устанавливая сервер в качестве прокси в браузере IE.
Должно быть реализовано:
* работа одновременно с многими запросами
Хорошо бы, но не обязательно:
* договорившись со мной предварительно, реализовать какое-нибудь изменение контента к лучшему проходящего через ваш прокси.