Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Прокси менеджер

Есть такой прокси как tinyproxy http://linux.die.net/man/5/tinyproxy.conf ,

легкий понятный, стабильно работающий. Для одного проекта нужны следуюшие модификации.

1) Убрать весь код которые отвечает за стандартную логику выбора вышестоящего прокси ( опции Upstream, No Upstream ),

мне эта функциональность не нужна. Нужно будет реализовать альтернативную логику ( см ниже)

2) Альтернативная логика будет заключаться, в том, что клиенту будет позволено выбирать через какой

вышестоящий прокси можно будет послать запрос, а также реализовать API по динамическому добавлению - удалению upstream

2.1 Предполагается, что тинипрокси будет держать в памяти список возможных прокси ( до 25 тыс IP адресов),

группу к которой относится прокси, и базовую статистику работы с вышестоящим прокси ( количество байт, количество запросов,количество неудачных запросов)

2.2) При запуске , он должен считывать список вышестоящих прокси из файла. По сигналу ( любой на ваш выбор), он должен сохранять данные о вышестоящих прокси в файл.

2.3) Файл представляет собой обычный текстовый файл вида ( до 25 тыс строк)

ip_address_of_upstram0:port,Group1

ip_address_of_upstram1:port,Group1

ip_address_of_upstram2:port,Group2

ip_address_of_upstram3:port,Group2

3.1) У тинипрокси есть такая опция как StatHost='yourname.local' , когда клиент обращается к такому хосту, то тинипрокси

прехватывает запрос и выдает в ответ статистику, нужно аналогично реализовать опцию ApiHost. При обращении к хосту указанному

в этой опции, должны выполнятся комманды определяемые дополнительными полями в HTTP заголовках.

3.2) Все API запросы передаются в HTTP полях X-API-XXXXXXX

3.3) Возможные API запросы ( HTTP заголовки)

3.3.1) X-API-ShowGroup: - в ответ выдает список груп

3.3.2) X-API-AddGroup: - создать новую группу ( максимально 15-20 групп)

3.3.3) X-API-DelGroup: - удалить группу

3.3.4) X-API-MoveGroup: перенести все IP адреса в новую группу ( если ее не существует, то создать новую) и удалить

3.3.5) X-API-AddProxy: Добавить прокси в группу

3.3.6) X-API-DelProxy: удалить прокси из группы

3.3.7) X-API-ShowGroupMembers: показывает список IP в этой группе

3.3.8) X-API-ShowGroupMembersStats: показывает список IP в этой группе и краткую статистику по каждому IP - количество байт, количество запросов,количество неудачных запросов

3.3.9) X-API-ShowProxyStats: краткую статистику

Те все API комманды относятся к управлению группами и адресами.

3.4) В конфиге определяется переменная DefaultGroup

3.5) При обработке обычного запроса, прокси обращает внимание на наличие следующих HTTP заголовков

X-PM-Group:

X-PM-Proxy: IP:Port

Если не существует, то ее нужно создать и добавить туда переденный адрес прокси.

Если заголовок X-PM-Group не определен, то используется DefaultGroup.

3.5.1) - Если заголовок X-PM-Proxy не определен, то нужно смотреть на переменную конфига DefaultAction

Если значение DefaultAction = Direct , то устанавливаем соединение с запрашиваемым узлом напрямую.

Если значение DefaultAction = Rotary , то случайным образом выбирается один из IP адресов из группы X-PM-Group и соединение уставливается через него.

3.5.2) - Если использовался вышестоящй проксти, то нужно передать клиенту информацию о том какой из апстримов использовался, чтобы клиент при повторных запросах мог повторно использовать один и тот же прокси.

Информация клиенту передается путем добавления заголовков

X-PM-UsedGroup:

X-PM-UsedProxy: IP:Port

Работа не срочная, две-три недели вполне приемлемый срок, оплата WMR. Разбиваем проект на стадии, оплата за каждую стадию.

12 лет назад
maxim-aminov
Максим 
44 годаКазахстан
12 лет в сервисе
Был
11 лет назад
  • Похожие заказы
  • $500

    Описание работы создоваемого продукта: 1. Берет из удаленной mysql базы список телефонов. 2. Звонит поочередно на них из Skype, после того как берут трубку прокручивает взаранее заданное аудио. 3. Анализирует ответ на предмет наличия в нем ...

    Закрыт
    12 лет назад
  • нужно написать много поточность минимум 100 потоков запросы post get.используя через компонент curl(delphi 7 ) . в идеале писать все на delphi 7, но как вариант как дополнительный модуль на C( чисто много поточность) , ...

    Закрыт
    12 лет назад
  • Нужен плагин для Mozilla Firefox на подобие SkipScreen, только именно для Turbobit чтоб скачивало без ожидания минуты.

    Закрыт
    12 лет назад
  • $250

    Средства разработки Unity3D создают окно приложения у которого заблокирована возможность изменения размеров (при перетаскивании границы окна), а так же возможность максимизации окна (разворачивание окна во весь экран как любого стандартного Windows-приложения). Необходимо разработать Unity3D-скрипт позволяющий разблокировать ...

    Закрыт
    12 лет назад
  • Нужно написать программу для Win XP,Vista,7 - Мультимедийный Курс Английского языка. Весь контент и дизайн готовы - нужно только программирование. Подробно об объеме и типе работ вы можете понять посмотрев презентацию, и почитав там комментарии у ...

    Закрыт
    12 лет назад
  • дизайн в psd, язык желательно c#+xaml, необходимо реализовать UI, механизм фильтрации и принятия решений по блокировке, управление черным и белым списком, блокировкой по расписанию, фильтр блокировки нежелательного контента, dll для перехвата траффика готова(LSP), необходимо к ...

    Закрыт
    12 лет назад
  • $50

    Необходима доработка программы на Delphi. Программа сканирует страничку авторов самиздата и показывает изменения. Задание: Добавить в программу 2 опции которые будут учитываться при сканировании всех авторов.

    Прикладное ПО1 исполнитель
    Закрыт
    12 лет назад
  • $200

    Необходимо помочь с записью звука с использованим библиотеки portaudio. Есть рабочий функционал (пару файлов, совсем немного). Затруднение вот в чем - берется звук с источника звука, в каком либо формате (частота, семлы итд). Надо добавить ...

    Закрыт
    12 лет назад
  • $100

    Добрый день. Требуется разработать XML структуру данных для хранения информации о наличии файлов. Файлы разбиты по категориям, для каждого файла в структуре требуется учесть имя файла, дату последнего обновления, автора, e-mail, описание(может быть много текста), ...

    Прикладное ПО1 исполнитель
    Завершен
    12 лет назад