Что такое скрипт прокси сервера. Планы на развитие. Итак, покончим с теорией и перейдём к практике

Те, кто читает мой блог помнят, что я уже писал статью посвященную нахождению нескольких сотен рабочих проксей за пару минут. Если кто не читал статья находится тут: Анонимность в интернете . Да, это конечно хорошо, из этой сотни проксей можно сделать хорошую и быструю сеть проксей и юзать ее довольно таки долгое время. Но все в нашей жизни не вечно и сколько бы у вас не было много проксей в конечном итоге они все равно сдохнут. Во многих случаях нам нужна всего одна постоянная быстрая прокси например для того, чтобы не палить свой реальный ИП на каком нибудь форуме(нуллед превед). Это как девушка. Их может быть много разных, но всегда должна быть одна и стабильная). Ну чтож, приступим к обсуждению.

Как вы поняли всем проксям требуется поддержка php, а следовательно вам в любом случае нужен будет хостинг где эти самые скрипты будут лежать. Ну я думаю купить хостинг за 1$ в месяц вы в любом случае сможете.

PHProxy 0.5b2 – я его и юзаю. В принципе полностью назвать этот скрипт прокси – нельзя ибо работает он как анонимайзер. Вы ставите его на свой хост и ходите по сайтам, при этом вместо вашего IP палится IP вашего хостера. Но анонимайзером его тоже не назовешь т.к скрипт очень хорошо работает с cookie и через него можно без проблем залогиниться и сидеть на любом сайте. Я сам юзаю этот скрипт и меня он устраивает по всем параметрам, начиная от скорости работы, заканчивая стабильностью. Единственная трабла у меня сейчас в том, что он почему-то перестал показывать изображения, хотя галочка "Show images on browsed pages” стоит. Ну и ладно, мне изображения и так не нужны. Скачать PHProxy 0.5b2 можно по этой ссылке: File Attachment: proxy-0.5b2.zip (26 KB)

ZELUNE PROXY SCRIPT – В принципе аналог PHProxy 0.5b2. Единственные отличия которые я заметил в том, что он у меня лучше как-то загружает картинки, но в общем примерно чуть медленнее пашет. Других отличий не нашел. Скачать Zeline proxy script можно по данной ссылке: File Attachment: zelune.zip (6 KB)

HTTP Local Proxy – как я понял это также анонимайзер, но после правильной настройки работать с ним удобнее, чем с теми скриптами, о которых я написал выше. Суть этого скрипта такова:

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

Установка скрипта:

  1. В архиве 3 файла gate.php, host.txt, proxy.exe
    Файл gate.php заливаем на наш хостинг, обязательно с разрешенными сокетами (бесплатные хостинги скорее всего вам не подойдут)
  2. В файл host.txt прописываем адреса залитого нами файла, каждый с новой строки. например:
    site.org/gate.php
    site2.ru/dir/gate.php
    somesite.org/newname.php
  3. Запускаем proxy.exe по умолчанию он запусваеться на порту 8080 и загружает список из файла host.txt , это можно изменить запустив бинарник с параметрами.
    proxy.exe [порт [имя_файла_с_хостами]]
  4. В браузере прописываем адрес HTTP прокси 127.0.0.1 и порт на котором он запущен

Вот и все, теперь можем гулять по интеренту под IP нашего хостера.

Если в файле host.txt более одного адреса, то proxy будет автоматически менять их (соответсвенно ваш ip тоже будет меняться)
Если нужно работать с одного ip, то в файле host.txt оставляем один адрес. Также с помощью этого скрипта к сожалению нельзя работать с большими файлами. За скрипт большое спасибо юзеру nc.STRIEM с античата.

PPROXY – прокси на PHP реализованная на Perl. Состоит она из двух частей. Суть работы прокси такова: на удаленный веб-сервер(хостинг) заливается первая часть прокси, написанная на PHP – скрипт pproxy.php. У себя на локалхосте запускается вторая часть прокси, реализованная на Perl (скрипт plocal.pl). Она прослушивает порт как HTTP-прокси. На этот локальный HTTP прокси настраивается, например, браузер.

Скрипты

  1. pproxy.php – первая, удаленная часть прокси, на PHP:
  2. local.pl – вторая, локальная часть прокси, на Perl:

Использование прокси

О построении цепочек прокси с помощью этого скрипта можно почитать на античате. За скрипт большое спасибо пользователю bons с античата.

Anichat php proxy – на самом деле я не знаю как называется эта прокси, но помню что скачал ее с античата. По этому такое название. Отличие этой прокси от остальных в том, что это полноценная прокси, закинув и запустив на вашем хосте один единственный файл вы получите адрес и порт прокси, который нужно будет ввести в вашем браузере или другой программе, где вам нужна php прокси работающая через http протокол. К сожалению больше о ней я ничего не знаю а работать на моем хостинге она отказалась. Но опять таки, помню, что на ачате были отзывы о ней => она рабочая. Скачать Anichat php proxy можно по этой ссылке: File Attachment: proxy.zip (1 KB)

Всем спасибо за внимание, если есть вопросы – задавайте их в комментах. А также не забудьте подписаться на RSS новости в "Блоге бумажной крысы” http://henzo.org .

Вся информация, которую содержит эта статья, не может быть использована ни в каких иных целях, кроме ознакомления.

Программа состоит из сервера и своего браузера. Сервер постоянно находится в ожидании запроса от Вашего браузера, получив его, без изменений передает через свой (серверный) браузер на запрашиваемую страницу сайта. Серверный браузер получает страницу сайта, тут мы ее при необходимости сжимаем, и сервер передает сжатую страницу (и признак сжатия) Вашему браузеру, который ее распаковывает. Если Вы скачиваете текстовый файл, файл Word, Excel и вообще то, что можно сжать, то происходит все то же самое – Вы получаете сжатый файл, который Ваш браузер распаковывает при получении.
Таким образом и запрос Вашего браузера и ответ на него находятся в наших руках. Что можно с ними сделать?
С запросом:
Не пропускать запросы к рекламным баннерам или к сайтам с ненужным содержанием.
Изменить значение поля Accept, указав, что наш браузер не поддерживает флэш (flash) рисунки, хотя есть некоторые сайты, целиком сделанные на флэш (и попадаются красивые). Но в основном, конечно, флэш технологии используются для создания увесистых рекламных баннеров.
Вообще можно изменить любое поле запроса, например, «заменив» Ваш браузер на SuperPuper/v.9.14 Platinum. Можно заменить поле «Referer», «Cookie» и т.д., сделав полностью анонимный прокси сервер. Но лично я против подобной «анонимности». При хороших намерениях скрываться нет необходимости. Это все равно, что придти в учреждение в маске.
С ответом:
Все тоже самое – заменить значение любого поля. Но поскольку теперь к нам попадает некоторое содержание (страница сайта, рисунок), то мы для начала решим, есть ли смысл его сжимать. Не будем сжимать, если:
Поле Content-Encoding: непустое, например, gzip.
Это все уже запакованные файлы, а также файлы рисунков, которые уже также сжаты. Т.е. судим по расширению (типу) полученного файла. Список приведен в программе, наверняка Вы дополните его.
Размер полученного файла мал. Например файл таблицы стилей или Java-Script. На мой взгляд, файлы размером меньшим, чем несколько килобайт сжимать не стоит.
Все остальное сожмем. И добавим признак сжатых данных, т.е. Content-Encoding: gzip. Интересно, кстати, выглядят сжатые данные! Когда работал в одной организации, там была девушка по имени Зубарзят, у нее такая внешность, что теперь все непонятные символы называю зубарзятами.
По наблюдениям степень сжатия колеблется в зависимости от содержания и типа данных от 2 до 10 раз. Текстовые файлы и файлы html в пределах от 4 до 10, обычно 5 – 7 раз. Учитывая, что на страницах сайтов имеются еще и рисунки, которые мы не сжимаем, то общее сжатие обычно в пределах от 2 до 5 раз. Соответственно время передачи данных меньшего размера уменьшается во столько же раз. А время обработки данных в десятки и сотни раз меньше времени передачи, так что оно не замечается.
Содержание перед сжатием можно проанализировать и:
Не пропускать рисунки большего размера, чем нами заданный.
Оставить только текстовое содержимое.
Не пропускать Java-Script и Java.
Но все это можно сделать и в настройках своего браузера.
Добавлять что-либо к содержимому страницы, например, кнопки управления Прокси Сервером или текущий курс акций, валюты, и т.д. и т.п.
Попутно замечу, что IP у Вас будет такой же, как у Вашего хостинга.
Практически кажая строка программы прокомментирована на странице http://blankinew.narod.ru/szhimaem_internet_trafik_proxy_server.html

1. Введение

В данной статье пойдет речь о нестандартном использовании PHP: для создания сжимающего трафик PHP-скрипта, который можно использовать в качестве виртуального прокси-сервера. Профессионалы PHP-фронта здесь вряд ли найдут что-то новое: такое применение php не мое ноу-хау и никаких особых функций php не используется. Остальные в этой статье узнают о новом способе экономии кило-мега-гигабайтов во время веб-серфинга. Не удивлюсь, если кто-то предприимчивый, прочитав эту статью, начнет уже завтра экономить свои мегабайты. Особенно после того, как узнает, каким образом можно построить схему прозрачной работы этой виртуальной прокси.

На заре моей диалап-юности модемы обменивались сжатыми данными, из-за чего конечная скорость веб-серфинга была выше в сравнении со скачиванием zip-архива. Таким образом экономились время и деньги клиента за счет нагрузки на процессоры модемов во время компрессии. Настали другие времена: диалап постепенно сдает свои позиции под натиском выделенных линий. А тут уже ни о каком сжатии трафика на чьих-либо процессорных мощностях речи не ведется как правило: трафик идет в своем первозданном виде, ни на байтик не сжат
(если этим не озаботились на стороне
сервера). А ведь его можно сжать!..

Для этого нам понадобится еще одно звено между браузером и веб-сервером, которое, как модем, будет сжимать весь входящий (входящий для браузера) трафик. Звеном этим будет являться обычный с виду php-скрипт на удаленном веб-сервере. Именно этот скрипт в ответ на специально составленный запрос и будет скачивать необходимую вам страницу и уже в сжатом виде отдавать ее браузеру. Основные требования к хостингу, на котором расположен этот php-скрипт: отсутствие баннеров хостера, возможность использования CURL и GZIP (проверить их доступность можно запуском скрипта с вызовом функции
phpinfo).

Чтобы лучше понять механизм работы системы промежуточного сжатия трафика, рассмотрим более подробно технологию ее работы.

На рисунке ниже представлена схема трех вариантов загрузки страницы: обычный вызов, сжатие данных на промежуточном сервере и прозрачная работа со сжатием страницы на промежуточном сервере. Рассмотрим что происходит в каждом из случаев.

2. Получение браузером страницы из сети

2.1. Обычный вызов

Допустим пользователя заинтересовала страница page.html на сервере site.com . Он набирает URL site.com/page.html в строке адреса. Браузер после этого производит по сети http-запрос страницы http://site.com/page.html (на рисунке — тонкая пунктирная стрелка, первая слева). В ответ на этот запрос веб-сервер site.com выдает http-ответ браузеру и следом за ним тело страницы page.html (на рисунке – жирная стрелка, вторая слева). После этого браузер отображает пользователю на экране монитора содержимое полученной страницы.

2.2. Сжатие данных на промежуточном сервере

Введем промежуточный сервер webzip.com между браузером и веб-сервером site.com, на котором будет происходить сжатие данных. Алгоритм получения страницы page.html такой же, как и в предыдущем случае за исключением того, что браузер запрашивает страницу не непосредственно у site.com, а через webzip.com. Причем полноразмерные (несжатые данные) идут только между site.com и webzip.com, между браузером и webzip.com тело страницы идет в сжатом виде (на рисунке — жирная пунктирная стрелка, третья слева). Заметим, что по причине использования возможностей php для сжатия страницы её адрес, запрашиваемый браузером, примет вид http://webzip.com/myzip.php?url=http://site.com/page.html. Веб-сервер (webzip.com), получив этот запрос, вызывает скрипт myzip.php, а тот в свою очередь по get-параметру (пусть им будет параметр с именем «url») вызова производит запрос на http://site.com/page.html. Полученную страницу скрипт myzip.php отдает браузеру в сжатом виде.

2.3. Прозрачная работа со сжатием страницы на промежуточном сервере

От предыдущего случая данный отличается тем, что работа виртуальной сжимающей прокси для браузера, а соответственно и пользователя, не видны. Достигается это за счет введения еще одного звена, между webzip.com и браузером. Этим звеном является обычный http-прокси, который помимо всего прочего занимается переписыванием исходящих заголовков http-запросов (например, с http://site.com/page.html на
http://webzip.com/myzip.php?url=http://site.com/page.html).

3. Настройка прозрачной работы

3.1. Установка скриптов

Скачать скрипты, которые реализуют все вышеописанное, можно здесь. В
три файла: myzip.php, func.inc.php, log.php. Первый – основной файл, к которому обращается клиент. Второй – содержит определения функций для первого. Третий – предназначен для отображения статистики работы прокси (содержит шаблон страницы статистики, суть берется из файлов log.log и
count.log).

Как уже было сказано ранее, разместить скрипты следует на любом хостинге, где есть поддержка PHP, CURL, ZLIB и отсутствуют банеры. В интернете такое можно без труда найти за 30 рублей в месяц.

Не пугайтесь платности хостинга – он с легкостью будет окупаться. Например, если вы платите 0.05 $/МБ — потребуется 20 сэкономленных мегабайт для оплаты хостинга, дальше выгода. По моему опыту это порядка 100-150 МБ веб-серфинга (среднее сжатие – в 4-7 раз, хотя встречается и до 12).

Проверить правильность работы можно, набрав в браузере следующий адрес: http://webzip.com/myzip.php?url=http://ya.ru. Если всё сделано правильно – загрузится страница яндекса с немного видоизмененным заголовком
(title).

3.2. Настройка Proxomitron-а

Использовался Proxomitron ver. Naoko 4.4 (http://www.proxomitron.ru).

Итак, мы хотим добиться от проксомитрона возможности прозрачной работы с веб-проксей, иными словами скрытое преобразование исходящих URL-ов от браузера. Для этого в главном окне проксомитрона нажимаем клавишу «Заголовки» («Headers»). В открывшемся окне («Фильтры заголовков HTTP» / «HTTP Header Filters») пролистываем до строки «URL: Alias Redirector (Out)», выделяем ее. Жмем кнопку «Изменить» («Edit»), в
развернувшемся окне («Редактор фильтров заголовка» / «HTTP Header filter editor») заполняем поля следующим образом (все, кроме первого):

Заголовок HTTP (HTTP Header) (!не меняем!) URL: Alias Redirector (Out)
Совпадение с URL (URL Match) *
Значение заголовка (Header Value Match) *
Текст замены (Replacement text) $RDIR(http://webzip.com/myzip.php?url=\u)
Где http://webzip.com/ — URL вашего сайта, myzip.php – имя скрипта, который вы закачали на сайт.

Вся суть в последней строке: проксомитрон будет менять любой URL (параметр «\u») от браузера на http://webzip.com/myzip.php?url=\u. Если написать вместо $RDIR команду $JUMP, то работа проксомитрона будет полупрозрачной: браузер будет просто перенаправляться на новый URL. В случае использования $RDIR – перенаправление будет происходить незаметно для браузера.

Закрываем окна, нажимая последовательно «Ок», «Применить» («Apply»), «Ок». Если есть желание не повторять эту процедуру снова – сохраните настройки.

В браузере прописываем прокси сервер с IP=127.0.0.1 и портом 8080 (порт, прослушиваемый проксомитроном по умолчанию).
Убедиться в том, что система сжатия трафика работает, можно всё так же — по изменяющимся заголовкам страниц (новый слева направо: исходный и переданный браузеру размер страницы в байтах, коэффициент сжатия, использование куков, get, <a href="/parametry-post-zaprosa-php-sozdanie-post-i-get-zaprosov/">post параметров</a>, время генерации страницы в секундах, исходный заголовок).</p> <p>Поделюсь радостью — у меня даже аська заработала сквозь проксомитрон.</p> <p><b>4. Тестовая экономия </b></p> <p>Настроив проксомитрон, решил выразить в цифрах новую работающую систему. Далее следует что-то вроде протокола 15-ти минут ускоренного веб-серфинга.</p> <p>Проверил через веб-интерфейс почту на mail.ru: <a href="/nastroika-startovoi-stranicy-yandeks-algoritm-ustanovki-glavnoi/">главная страница</a> – уже 39 кБ экономии; вошел в ящик – уже 60 кБ; побегал по папкам, посмотрел почту; вышел — уже 300 кБ экономии. Задал парочку запросов яндексу – на выходе 570 кБ. Отправил три смски (Мегафон, Билайн, МТС). Походил по форумам на sql.ru и rsdn.ru. Поискал в гугл парочку абракадр. Смотрю на счетчик — итого два мегабайта экономии. Вроде бы пустячок, но это всего лишь час <a href="/kak-sdelat-tak-chtoby-ne-nagrevalsya-noutbuk-pochemu-noutbuk-greetsya-v-igrah/">обычной работы</a>. Что же получится у вас за месяц работы? Копейка рубль бережет.</p> <p><b>5. Итого </b></p> <p>Сразу предупрежу, что хостеры не очень приветствуют создание на их стороне чего-либо проксо-подобного. Используйте скрипт на свой страх и риск, отвечать вам. Однако, если вы не устраиваете публичной прокси с многогигабайтным трафиком, то вряд ли они заметят 200-500 МБ на скрипте – для них это капля в море. К тому же, если встроить скрипт сжатия в другую страницу, то заметить подвох хостеру будет еще сложнее. Она внешне (без вызова с <a href="/kak-zaiti-v-panel-upravleniya-routera-opredelenie-parametrov-seti-nuzhny/">нужным параметром</a> «url») будет представлять собой обыкновенную <a href="/kak-v-yandekse-sdelat-domashnyuyu-stranicu-shema-zakrepleniya/">домашнюю страницу</a>. Хотя при особом желании провайдер и эту уловку обнаружит, но шанс мал. Ну, а если и обнаружит – скажете, что ваш сайт сломали и «невиноватые мы». В самом худшем случае придется сменить хостера (или аккаунт у прежнего:)).</p> <p>Не рекомендую использовать подобную проксю для доступа к очень <a href="/informaciya-o-sekretnyh-kodah-nokia-zashchitnyi-kod-sbros-nastroek-i-proverka-imei-kak/">секретной информации</a>, поскольку все логины-пароли идут сквозь хостера и без труда будут перехвачены при его желании. Однако, в случае применения HTTPS не всё так просто для подлого хостера.<br> Несмотря на некоторую долю «неанонимности» использования технологии ее можно использовать для легкого хака (легкого, то есть вас не будут искать ФСБешники в случае обнаружения атаки). Например, анонимно побаловаться с обработкой вводимых параметров на сайте одногруппника.</p> <p>Если вы заглянете в код скрипта, то обнаружите там парочку параметров, при помощи которых можно включать/выключать возможности скрипта. Например, изменение заголовка с целью вывода статистики работы скрипта (параметр MOD_TITLE). При желании к скрипту можно без труда добавить дополнительную функциональность. Например, вывод протокола работы в базу данных с целью его дальнейшего анализа (протокол по умолчанию можно посмотреть в<br> log.php).</p> <p>Замечу, что в Интернете уже существуют <a href="/pinger-i-podobnye-servisy-kak-rabotaet-kak-zaregistrirovatsya/">подобные сервисы</a> (например, www.tcompressor.ru и www.toonel.net), как платные так и бесплатные. У них у всех есть свои плюсы и минусы. Основное достоинство применения вышеописанной технологии в том, что вы сами являетесь хозяином своего трафика (нет баннеров, нет оплаты, нет сомнительных приложений, нет хостера,<br> размещающего сервис) – всё в ваших руках.</p> <p>P.S. Не считаю свои слова истиной в последней инстанции, поэтому, если я в чем-то ошибаюсь, поправьте меня. Спасибо!</p> <p>P.P.S. Уверен, скрипт тоже не без греха, поэтому поправки приветствуются!</p> <i> </i> <p>В общем, я таки решился его выкатить. Инструмент очень мощный как я считаю, разрабатывался и шлифовался около года.</p> <h2>Что он умеет? </h2> <p>Он умеет полностью заменять очень опытного и квалифицированного в вопросах настройки проксей <a href="/kto-takie-sisadminy-i-chto-oni-delayut-professiya-sistemnyi/">системного администратора</a>, услуги которого по этой теме стоят 2000 рублей за настройку одного сервера 🙂</p> <ul><li>Он умеет поднимать прокси на centos (6,7), debian и ubuntu (любых версий). То есть на любой из популярных ОС на хостингах он может поднять прокси. Но при наличии выбора рекомендуется Centos 7.</li> <li>Он читает на вход только лишь список IP-адресов. Рядом с ним должен быть файл ip.list со списком адресов. Скрипт разбирает этот список, определяет настроены ли адреса на <a href="/192-168-11-vhod-v-router-setevoi-interfeis-otklyuch-n-kakoi-ip-adres/">сетевом интерфейсе</a> и предлагает настроить те адреса, что есть в списке, но недоступны (не «подняты», т.е. не сконфигурированы в самой OS). Если вы соглашаетесь на эти настройки, то всё поднимается и прописывается в автозагрузку.</li> <li>Скрипт разбирает IPv6 и IPv4 в списке. И конфигурит все соответствующим образом.</li> <li>Он умеет поднимать SOCKS и HTTP прокси. По-умолчанию только http, о соксах он спрашивает, и можно согласиться на их поднятие.</li> <li>Скрипт генерирует для каждого прокси отдельную пару — логин-пароль. Логины вида user1, user2, .., userN. Пароли рандомные, из 8 символов.</li> <li>Все прокси он поднимает на разных портах, которые берутся из заранее определенного диапазона портов. Для socks можно указать диапазон.</li> <li>Скрипт загружает и компилирует из исходников <a href="/skachat-novuyu-versiyu-internet-eksplorer-obnovlyaem-brauzer-internet-explorer/">актуальную версию</a> 3proxy. Вся настройка именно на нём. Это очень <a href="/top-10-deshevyh-smartfonov-luchshie-nedorogie-smartfony-po-otzyvam/">хороший легкий</a> прокси-сервер, созданный специально для подобных нужд. Может выдерживать очень <a href="/batareya-posle-50-bystro-razryazhaetsya-bolshaya-nagruzka-na-telefon/">большие нагрузки</a> при относительно небольших ресурсах. (1000 прокси на каждый 1 GB RAM). Обкатано на десятках клиентов. У топовых клиентов поднимали до 16к прокси на одном сервере с 8 гб RAM.</li> <li>В случае если прокси сервер уже был ранее установлен — скрипт это определит, и спросит нужно ли переустанавливать. Удобно при <a href="/kak-pochistit-telefon-android-ot-nenuzhnyh-failov-sposoby/">повторных запусках</a>, если нужно переделать. В таких случаях скрипт перемещает старые конфиги и списки прокси, помечая их <a href="/tekushchee-vremya-php-timestamp-poluchenie-tekushchego-vremeni-i-daty-v/">текущей датой-временем</a>. Так что, в случае чего всегда можно вручную откатить с бэкапов, даже если что-то пойдёт не так.</li> <li>Позволяет включить логгирование (интерактивно спрашивает об этом при настройке)</li> <li>Создаёт удобный скрипт для запуска-перезапуска.</li> <li>Прописывает старт прокси в автозагрузку</li> <li>Прописывает задание в планировщик (cron) для рестарта проксей каждый час, во избежание зависаний.</li> </ul><p>Бонусом к скрипту идёт ещё один скрипт, который позволяет сгенерить список <a href="/chto-takoe-protokol-peredachi-osnovnye-protokoly-seti-ip-adres---eto-unikalnyi/">уникальных IP-адресов</a> для сети IPv6 /48 — из каждой /64 сети получается один прокси. Поскольку IPv6 тоже набирает популярность, прокси на них получаются очень дешёвыми, поэтому продукт умеет работать и с этим.</p> <h2>Чего не умеет </h2> <ul><li>Добавлять прокси на уже настроенный сервер(в планах).</li> <li>Изменять настройки <a href="/kak-nastroit-proksi-v-vashem-brauzere-kak-dolgo-sushchestvuyut-proksi-servery-chto/">существующего сервера</a>. Только полная перенастройка.</li> <li>Настраивать авторизацию не по логину-паролю, а по ip, например.</li> <li>Задавать единый логин-пароль на всю пачку адресов.</li> <li>Задавать <a href="/aifon-7-razem-pochemu-eto-ploho-kakie-perspektivy-edinogo-porta/">единый порт</a> для всех прокси.</li> </ul><p>Вот эти фичи возможно в скрипте появятся когда-нибудь, возможно даже в недалёком будущем.</p> <p>И очень важная вещь. Я думаю это очевидно, но скорей всего не всем. Поэтому всё же считаю необходимым чётко оговорить:</p> <ul><li>Скрипт НЕ УМЕЕТ создавать и настраивать прокси без IP-адресов 🙂</li> </ul><p>Скрипт этого не умеет, и не будет уметь никогда. Ибо для каждого прокси нужен отдельный IP. Даже если где-то вам выдавали много прокси на одном IP — скорей всего вам выдавали только входной интерфейс, с разными портами. А на выходе должны быть разные IP. Если вы хотите поднять прокси на своём VPS где у вас сайты работают — вы сможете это сделать, конечно. Но покупать его для сего нецелесообразно. Ибо на таком сервере вы поднимете 1 прокси, ну или сколько там у вас есть адресов. ()</p> <h2><span>Планы на развитие </span></h2> <p>Скрипт постоянно развивается, покуда у меня есть клиенты на настройку прокси-серверов. Более того, я планирую развить этот скрипт в полноценную панель управления проксями. Чтобы можно было все настраивать, мониторить и управлять через веб-интерфейс. Совсем уж в далёких планах — прикрутить даже биллинг, для продажи прокси. Но это не точно 🙂</p> <p>Недавно уже была попытка создать веб-интерфейс. Человек по моему заказу написал панельку, но она получилась неюзабельной. Планировалось собрать в кучу и выкатить скрипт на продажу вместе с ней, уже как панель управления проксями. Но по этой части всё слишком сыро ещё.</p> <p>Поэтому пока запускаю как есть — без веб-интерфейса, но полностью работающим, позволяющим настроить любое количество любых прокси на любых серверах. Продажи запускаю не в <a href="/pri-vklyuchenii-pk-srazu-vyklyuchaetsya-v-zavershenie-programmnaya-diagnostika-v-poslednyuyu-ochered-pochem/">последнюю очередь</a> чтобы дать толчок развитию продукта.</p> <p>Ибо инструмент довольно востребованный, судя по рынку, но сейчас у меня нет времени на то чтобы его развивать, потому что занимаюсь другими задачами. Если же я буду получать фидбек от людей, пользующихся инструментом — мне будет гораздо проще его дорабатывать и поддерживать. Тут даже как — я не смогу этого не делать 🙂</p> <h2><span>Оплата и ценовая политика </span></h2> <p>Покупать скрипт лучше всего в . Его, кстати, планируется постепенно пополнять новыми ништяками, коих скопилось уже пару десятков в закромах. Пока там доступна оплата только с <a href="/oplachivat-s-pomoshchyu-webmoney-poryadok-osushchestvleniya-oplaty-na/">помощью Webmoney</a>, но в ближайшее время буду подключать и другие способы. Сейчас если есть необходимость оплатить другим способом — можно стучаться по контактам ко мне — там уже решим, это без проблем — яндекс, киви или даже paypal.</p> <p>Именно по такой цене я продавал его людям по запросу, которых можно считать альфа-тестерами 🙂 От некоторых из них поступали заказы на разработку дополнительных фич, которые вошли в <a href="/mozilla-firefox-tekushchaya-versiya-skachat-i-ustanovit-brauzer-mozilla-firefox/">текущую версию</a> скрипта. А какие-то возможно ещё войдут. Когда (и если) скрипт вырастет в полноценную панель управления — цена поднимется, скорей всего.</p> <h2><span>Презентация и инструкция — поднимаем свой сервер с любым количеством прокси за 10 минут! </span></h2> <p><span class="zrutP_rEwLw"></span></p> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy>");</script> </div> </article> <div class="related-posts"> <h3 class="title text-uppercase text-center">Еще на эту тему:</h3> <div class="row"> <div class="post article-wrp with-border col-sm-6 col-md-4"> <div class="article-in-loop"> <a class="thumb-title" href="/top-programm-dlya-udaleniya-draiverov-skachat-driver-sweeper/"> <span class="embed-responsive embed-responsive-16by9 vertical-align-block thumb"> <span class="embed-responsive-item"> <span class="super-wrp"> <span class="span-table"> <span class="span-table-row"> <span class="span-table-row-cell"> <img src="https://i2.wp.com/pc-assistent.ru/wp-content/uploads/2017/06/driver_sweeper_200x175.png" class="img-responsive" alt="Скачать Driver Sweeper – программа для удаления драйверов из OC Windows Скачать программу для удаления драйверов карты" loading=lazy> </span> </span> </span> </span> </span> </span> <span class="date"> </span> <span class="title"> Скачать Driver Sweeper – программа для удаления драйверов из OC Windows Скачать программу для удаления драйверов карты </span> </a> </div> </div> <div class="post article-wrp with-border col-sm-6 col-md-4"> <div class="article-in-loop"> <a class="thumb-title" href="/vykidyvaet-na-rabochii-stol-sniper-elite-v2-vykidyvaet-na-rabochii-stol-sniper-elite-v2-chto/"> <span class="embed-responsive embed-responsive-16by9 vertical-align-block thumb"> <span class="embed-responsive-item"> <span class="super-wrp"> <span class="span-table"> <span class="span-table-row"> <span class="span-table-row-cell"> <img src="https://i2.wp.com/i.rutab.net/upload/tech_issues/audio_check.png" class="img-responsive" alt="Выкидывает на рабочий стол Sniper Elite V2 Что делать если лагает sniper elite 3" loading=lazy> </span> </span> </span> </span> </span> </span> <span class="date"> </span> <span class="title"> Выкидывает на рабочий стол Sniper Elite V2 Что делать если лагает sniper elite 3 </span> </a> </div> </div> <div class="post article-wrp with-border col-sm-6 col-md-4"> <div class="article-in-loop"> <a class="thumb-title" href="/kak-naiti-kartinu-po-fotografii-poisk-pohozhei-fotografii-v-internet-poisk/"> <span class="embed-responsive embed-responsive-16by9 vertical-align-block thumb"> <span class="embed-responsive-item"> <span class="super-wrp"> <span class="span-table"> <span class="span-table-row"> <span class="span-table-row-cell"> <img src="https://i2.wp.com/kompukter.ru/wp-content/uploads/2018/03/klikaem-po-znachku-foto-v-gugl.png" class="img-responsive" alt="Поиск похожей фотографии в интернет" loading=lazy> </span> </span> </span> </span> </span> </span> <span class="date"> </span> <span class="title"> Поиск похожей фотографии в интернет </span> </a> </div> </div> </div> </div> </div> <aside id="sidebar" class="col-sm-4 col-sidebar hidden-xs" role="complementary"> <div class="content-menu bs-docs-sidebar"> <div class="progress-right" id="progress-right">0%</div> <script> window.onscroll = function() { var scrolled = window.pageYOffset || document.documentElement.scrollTop; var scrollprogress = Math.round(scrolled / ((document.documentElement.scrollHeight - document.documentElement.clientHeight) / 100)); document.getElementById('progress-right').innerHTML = scrollprogress + '%'; } </script> <div class="ad clearfix text-center"> </div> </div> <script> /** * Скрипт закріплення блоку при прокрутці */ (function() { var a = document.querySelector('#sidebar'), b = null, P = 0; window.addEventListener('scroll', Ascroll, false); document.body.addEventListener('scroll', Ascroll, false); function Ascroll() { if (b == null) { var Sa = getComputedStyle(a, ''), s = ''; for (var i = 0; i < Sa.length; i++) { if (Sa[i].indexOf('overflow') == 0 || Sa[i].indexOf('padding') == 0 || Sa[i].indexOf('border') == 0 || Sa[i].indexOf('outline') == 0 || Sa[i].indexOf('box-shadow') == 0 || Sa[i].indexOf('background') == 0) { s += Sa[i] + ': ' + Sa.getPropertyValue(Sa[i]) + '; ' } } b = document.createElement('div'); b.style.cssText = s + ' box-sizing: border-box; width: ' + a.offsetWidth + 'px;'; a.insertBefore(b, a.firstChild); var l = a.childNodes.length; for (var i = 1; i < l; i++) { b.appendChild(a.childNodes[1]); } a.style.height = b.getBoundingClientRect().height + 'px'; a.style.padding = '0'; a.style.border = '0'; } var Ra = a.getBoundingClientRect(), R = Math.round(Ra.top + b.getBoundingClientRect().height - document.querySelector('#content').getBoundingClientRect().bottom); // селектор блока, при достижении нижнего края которого нужно открепить прилипающий элемент if ((Ra.top - P) <= 0) { if ((Ra.top - P) <= R) { b.className = 'stop'; b.style.top = -R + 'px'; } else { b.className = 'evr-sticky'; b.style.top = P + 'px'; } } else { b.className = ''; b.style.top = ''; } window.addEventListener('resize', function() { a.children[0].style.width = getComputedStyle(a, '').width }, false); } })() </script> <style> /* Додаємо відступ вгорі, щоб було на одному рівні із змістом */ body.single #breadcrumbs { margin-bottom: 5px; } #content article { padding-top: 15px; } #sidebar .evr-sticky { position: fixed; z-index: 101; } #sidebar .stop { position: relative; z-index: 101; } #div-gpt-ad-30906309 { margin-top: 20px; } #sidebar .evr-sticky #div-gpt-ad-30906309, #sidebar .stop #div-gpt-ad-30906309 { margin-top: 20px; } #sidebar .content-menu { transition: 0.5s all; } #sidebar .content-menu .title { padding-top: 15px; font-size: 20px; margin: 0 0 15px 0; } #sidebar .content-menu .title .glyphicon { padding-right: 5px; } #sidebar .content-menu ul { padding: 0; margin: 0; overflow: auto; } #sidebar .content-menu .nav li { margin: 0; clear: both; margin-bottom: 4px; } /* Bullet before text */ #sidebar .content-menu .nav li a:before { content: "●"; position: absolute; font-size: 17px; color: #dedede; left: 0; top: -1px; } #sidebar .content-menu .nav li a { position: relative; display: inline-block; font-size: 15px; color: #000; line-height: 1.2; padding: 3px 0 0 18px; overflow: hidden; text-decoration: none !important; } #sidebar .content-menu .nav li.active:focus>a, #sidebar .content-menu .nav li.active:hover>a, #sidebar .content-menu .nav li.active>a, #sidebar .content-menu .nav li a:hover { text-decoration: none; font-weight: normal; color: #c23085; background-color: transparent; border-left: 0 none; } /* Bullet before text */ #sidebar .content-menu .nav li.active>a:hover:before, #sidebar .content-menu .nav li.active>a:before { -moz-transform: scale(1.3); -webkit-transform: scale(1.3); transform: scale(1.3); left: 1px; color: #c23085; background: transparent; } #sidebar .content-menu .nav li a:hover:before { color: #c23085; background: transparent; } #sidebar a.go-top { display: block; margin-top: 5px; padding: 14px 0 5px 0; text-align: center; text-transform: lowercase; font-size: 17px; color: #666; background: transparent url(/wp-content/themes/sk-Evrikak/i/go-top-in-sidebar.png) no-repeat 50% 50%; opacity: 0; transition: 0.2s all; } #sidebar a.go-top:hover { color: #000; text-decoration: none; } /* Якщо блок зафіксовний */ #sidebar .evr-sticky a.go-top { opacity: 1; } #sidebar .evr-sticky { box-shadow: -9px 0 10px 0 rgba(0, 0, 0, 0.08) !important; } </style> <script> jQuery(document).ready(function() { // (c) http://jsfiddle.net/gableroux/S2SMK/ // підсвітка активного пункту меню, bootstrap jQuery('body').scrollspy({ target: '.bs-docs-sidebar', offset: 70 }); // даємо висоту меню, щоб зробити прокрутку jQuery(window).bind("load resize", function() { var body_w = jQuery("body").width(); // визначаємо ширину вікна var window_h = jQuery(window).height(); // визначаємо висоту вікна //alert(window_h); if (body_w > '767') { // якщо ширина більша 767 window_h = window_h - 375; // коригуємо висоту блоку з меню. віднімаємо висоту блоку «наверх», у перспективі треба буще ще відняти інші-нові блоки var menu_h = jQuery('#sidebar .content-menu').height(); //if(menu_h > window_h) { // якщо висота усього сайдбару більше висоти екрану, то вказуємо висоту для меню. Воно автоматично розтягне висоту сайдбару, з’явиться прорутка у меню, і сайдбар займе усю висоту вікна jQuery('#sidebar .content-menu ul.nav').css('height', window_h); //} } }); // парсимо контент і формуємо меню jQuery('#content .evr-section').each(function() { var evr_section_id = jQuery(this).attr('id'); var evr_section_title = jQuery(this).find(':header:first').text(); var txt = '<li class="content-menu-item added-by-js"><a href="#' + evr_section_id + '">' + evr_section_title + '</a></li>'; //var txt = txt.unwrap(); //txt = jQuery('li', txt).unwrap; //txt = txt.unwrap('h3'); //txt = jQuery(txt).wrap('<li>'); jQuery('#sidebar ul.nav').append(txt); // Insert }); // Додаємо спеціальний клас для посилання на відео jQuery('#sidebar .content-menu').find("a[href='#entry-video']").addClass('link-to-video'); // навігація по статті (плавна прокрутка до потрібного блоку) jQuery('#sidebar .content-menu .nav a').click(function() { jQuery.scrollTo(this.hash, { offset: -10, // Відступ вгорі duration: 750 }); return false; }); // перейти вгору (плавна прокрутка вгору) jQuery('#sidebar a.go-top').click(function() { jQuery.scrollTo(this.hash, { offset: 0, // Відступ вгорі duration: 450 }); return false; }); }); </script> <link type="text/css" href="/wp-content/themes/sk-Evrikak/scroll-Pane/jquery.jscrollpane.css" rel="stylesheet" media="all" /> <script type="text/javascript" src="https://battlecase.ru/wp-content/themes/sk-Evrikak/scroll-Pane/jquery.mousewheel.js"></script> <script type="text/javascript" src="https://battlecase.ru/wp-content/themes/sk-Evrikak/scroll-Pane/jquery.jscrollpane.min.js"></script> <script> // Прокрутка оновлюється при зміні висоти вікна jQuery(function() { jQuery('#sidebar .content-menu ul.nav').each( function() { jQuery(this).jScrollPane({ showArrows: jQuery(this).is('.arrow') }); var api = jQuery(this).data('jsp'); var throttleTimeout; jQuery(window).bind("load resize", function() { // IE fires multiple resize events while you are dragging the browser window which // causes it to crash if you try to update the scrollpane on every one. So we need // to throttle it to fire a maximum of once every 50 milliseconds... if (!throttleTimeout) { throttleTimeout = setTimeout( function() { api.reinitialise(); throttleTimeout = null; }, 50 ); } }); } ) }); </script> <style> /* Styles specific to this particular page */ .scroll-pane { overflow: auto; height: 400px; } .jspTrack { background: #dedede; } .jspVerticalBar { width: 6px; } .jspDrag { background: #309dc6; } </style> </aside> </div> </div> <div class="other-posts"> <div class="container"> <h3 class="title text-uppercase text-center h">Другие статьи:</h3> <div class="row articles"> <div class="post article-wrp with-border col-sm-6 col-md-4 col-lg-3"> <div class="article-in-loop"> <a class="thumb-title" href="/samyi-moshchnyi-telefon-v-mire-na-dannyi-moment-samye-moshchnye-smartfony-top-10/"> <span class="embed-responsive embed-responsive-16by9 vertical-align-block thumb"> <span class="embed-responsive-item"> <span class="super-wrp"> <span class="span-table"> <span class="span-table-row"> <span class="span-table-row-cell"> <img src="https://i1.wp.com/technosova.ru/wp-content/uploads/2018/10/2-2.jpg" class="img-responsive" alt="Самые мощные смартфоны Топ 10 самых мощных телефонов" loading=lazy> </span> </span> </span> </span> </span> </span> <span class="date"> Самые мощные смартфоны Топ 10 самых мощных телефонов </span> <span class="title"> Современные технологии позволяют уместить в обычном смартфоне мощность и производительность... </span> </a> </div> </div> <div class="post article-wrp with-border col-sm-6 col-md-4 col-lg-3"> <div class="article-in-loop"> <a class="thumb-title" href="/kak-udalitsya-iz-moego-mira-kak-udalit-stranicu-i-akkaunt-v-moem-mire/"> <span class="embed-responsive embed-responsive-16by9 vertical-align-block thumb"> <span class="embed-responsive-item"> <span class="super-wrp"> <span class="span-table"> <span class="span-table-row"> <span class="span-table-row-cell"> <img src="https://i1.wp.com/socialnie-seti.info/wp-content/uploads/2012/09/galochki-dlya-ydaleniya-stranici.jpg" class="img-responsive" alt="Как удалить страницу и аккаунт в моем мире" loading=lazy> </span> </span> </span> </span> </span> </span> <span class="date"> Как удалить страницу и аккаунт в моем мире </span> <span class="title"> Бывает так, что человек пройдя регистрацию понимает, что эта социальная сеть не для него и хочет... </span> </a> </div> </div> <div class="post article-wrp with-border col-sm-6 col-md-4 col-lg-3"> <div class="article-in-loop"> <a class="thumb-title" href="/ne-udalyaetsya-avast-chto-delat-kak-udalit-avast-s-kompyutera-esli-on-ne/"> <span class="embed-responsive embed-responsive-16by9 vertical-align-block thumb"> <span class="embed-responsive-item"> <span class="super-wrp"> <span class="span-table"> <span class="span-table-row"> <span class="span-table-row-cell"> <img src="https://i2.wp.com/vellisa.ru/wp-content/uploads/2018/05/2-1.jpg" class="img-responsive" alt="Как удалить аваст с компьютера если он не удаляется" loading=lazy> </span> </span> </span> </span> </span> </span> <span class="date"> Как удалить аваст с компьютера если он не удаляется </span> <span class="title"> Сейчас мы разберем, как удалить Аваст, чтобы после деинсталляции антивируса, на компьютере не... </span> </a> </div> </div> <div class="post article-wrp with-border col-sm-6 col-md-4 col-lg-3"> <div class="article-in-loop"> <a class="thumb-title" href="/kak-podklyuchit-nokia-lyumiya-800-k-kompyuteru-podklyuchenie-nokia-lumia-k/"> <span class="embed-responsive embed-responsive-16by9 vertical-align-block thumb"> <span class="embed-responsive-item"> <span class="super-wrp"> <span class="span-table"> <span class="span-table-row"> <span class="span-table-row-cell"> <img src="https://i2.wp.com/sms-mms-free.ru/sites/default/files/images/Specifications_Nokia_800_Zune.jpg" class="img-responsive" alt="Подключение Nokia Lumia к ПК" loading=lazy> </span> </span> </span> </span> </span> </span> <span class="date"> Подключение Nokia Lumia к ПК </span> <span class="title"> Статьи и Лайфхаки впервые могло разочаровать всех, кто недавно приобрёл данное мобильное... </span> </a> </div> </div> </div> </div> </div> <style> /* Додаємо відступ внизу */ body.single #content .ad { margin-bottom: 20px; } /* Додаємо відступ вгорі */ body.single #sidebar .ad { margin-top: 20px; } </style> <footer id="footer" class="clearfix"> <noindex> <div class="container row-1 hidden-xs"> <nav class="nav"> <div class="menu menu-footer"> <ul id="menu-podval" class="menu"> <li class="menu-item type-custom object-custom home "><a href="/">Главная</a></li> <li class="menu-item type-post_type object-page "><a href="">О проекте</a></li> <li class="menu-item type-post_type object-page "><a href="">Рекламодателям</a></li> <li class="menu-item type-post_type object-page "><a href="/sitemap.xml">Карта сайта</a></li> <li class="menu-item type-post_type object-page "><a href="/feedback/">Обратная связь</a></li> </ul> </div> </nav> </div> <div class="border-blue clearfix"></div> <div class="container row-2"> <div class="row"> <div class="col-sm-6"> <div id="text-2" class="block widget-container widget_text"> <div class="textwidget"> <div class="sn"> <a href="https://www.facebook.com/sharer/sharer.php?u=https://battlecase.ru/chto-takoe-skript-proksi-servera-plany-na-razvitie-itak-pokonchim/" target="_blank"><img src="https://battlecase.ru/wp-content/themes/sk-Evrikak/i/sn/facebook.png" alt="" class="img-responsive" loading=lazy></a> <a href="https://vk.com/share.php?url=https://battlecase.ru/chto-takoe-skript-proksi-servera-plany-na-razvitie-itak-pokonchim/" target="_blank"><img src="https://battlecase.ru/wp-content/themes/sk-Evrikak/i/sn/vkontakte.png" alt="" class="img-responsive" loading=lazy></a> <a href="https://youtube.com/" target="_blank"><img src="https://battlecase.ru/wp-content/themes/sk-Evrikak/i/sn/youtube.png" alt="" class="img-responsive" loading=lazy></a> </div> <style> .sn a { display: inline-block; margin: 0 10px 0 0; width: 55px; } @media (max-width:767px) { .sn { text-align: center; } .sn a { margin: 0 7px; width: 43px; } } .sn a:hover { opacity: 0.9; } </style> </div> </div> </div> </div> </div> <div class="border-3 clearfix"></div> <div class="container row-3"> <div class="row"> <div class="col-sm-8 col-txt col-txt-1"> Размещенные на сайте материалы, могут содержать информацию для пользователей старше 18 лет. </div> <div class="col-sm-4 col-txt col-txt-2 text-right"> <div class="project-by-um"> © 2012 - 2018 <img src="https://battlecase.ru/wp-content/themes/sk-Evrikak/i/svg/logo-ukr-media.svg" width="90" class="img-responsive" loading=lazy> </div> </div> </div> </div> </noindex> </footer> </div> <div class="modal fade" id="modal-search" tabindex="-1" role="dialog" aria-labelledby="modal-searchLabel"> <div class="modal-dialog modal-lg itc-container" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Закрыть"><span aria-hidden="true">×</span></button> <h4 class="modal-title" id="modal-searchLabel">Поиск по сайту</h4> </div> <div class="modal-body"> <form role="search" method="get" class="form-search" id="modal-searchform" action="/"> <div class="form-group"> <input type="search" autocomplete="off" spellcheck="false" placeholder="Введите текст поиска" value="" name="s" id="modal-s" class="input-lg form-control"> </div> </form> <div class="modal-search-results"></div> </div> </div> </div> </div> <link rel='stylesheet' id='dashicons-css' href='/wp-includes/css/dashicons.min.css?ver=4.9.1' type='text/css' media='all' /> <link rel='stylesheet' id='thickbox-css' href='/wp-includes/js/thickbox/thickbox.css?ver=4.9.1' type='text/css' media='all' /> <script type='text/javascript' src='https://battlecase.ru/wp-content/plugins/decomments/templates/decomments/assets/js/decom.min.js?ver=1513648647'></script> <script type='text/javascript' src='https://battlecase.ru/wp-content/themes/sk-Evrikak/js/modernizr-2.8.3.min.js?ver=4.9.1'></script> <script type='text/javascript' src='https://battlecase.ru/wp-content/plugins/visualizer/js/lib/clipboardjs/clipboard.min.js?ver=3.0.4'></script> <script type='text/javascript' src='https://battlecase.ru/wp-content/plugins/mistape/assets/js/mistape-front.js?ver=1.3.3'></script> <script type='text/javascript' src='https://battlecase.ru/wp-content/plugins/lazy-load/js/jquery.sonar.min.js?ver=0.6.1'></script> <script type='text/javascript' src='https://battlecase.ru/wp-content/plugins/lazy-load/js/lazy-load.js?ver=0.6.1'></script> <script type='text/javascript' src='/wp-includes/js/wp-embed.min.js?ver=4.9.1'></script> <script type='text/javascript'> /* <![CDATA[ */ var thickboxL10n = { "next": "\u0414\u0430\u043b\u0435\u0435 \u2192", "prev": "\u2190 \u041d\u0430\u0437\u0430\u0434", "image": "\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435", "of": "\u0438\u0437", "close": "\u0417\u0430\u043a\u0440\u044b\u0442\u044c", "noiframes": "\u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0438\u0445 \u0444\u0440\u0435\u0439\u043c\u043e\u0432. \u0423 \u0432\u0430\u0441 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0442\u0435\u0433\u0438 iframe, \u043b\u0438\u0431\u043e \u0432\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0438\u0445 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442.", "loadingAnimation": "http:\/\/battlecase.ru\/wp-includes\/js\/thickbox\/loadingAnimation.gif" }; /* ]]> */ </script> <script type='text/javascript' src='/wp-includes/js/thickbox/thickbox.js?ver=3.1-20121105'></script> <div id="mmenu_res" style="display:none;width:100%;height:40px;line-height:40px;background:#FD6A93;color:#FFFFFF;position:fixed;text-align:center;font-size:23px;;z-index:100000000"> <a class="mmenu_open" href="#irevoltmenu"> <span class="mmenu-icon-bar"></span> <span class="mmenu-icon-bar"></span> <span class="mmenu-icon-bar"></span> </a> Рубрики </div> <div class="modal fade" id="modalAd" tabindex="-1" role="dialog" aria-labelledby="modalAdLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> </div> <div class="modal-body"> <div class="ad text-center"> </div> </div> </div> </div> </div> <link rel="stylesheet" href="/wp-content/themes/sk-Evrikak/ad/ad_popup-and-bottom/show-ads.css"> <script src="/assets/jquery1.cookie1.js"></script> <script src="https://battlecase.ru/wp-content/themes/sk-Evrikak/ad/ad_popup-and-bottom/show-ads.js"></script> </body> </html>