+  HandyCache форум
|-+  Главная категория» Новые предложения» Поддержка PAC-файлов
Имя пользователя:
Пароль:
Страниц: 1 2 3 [4]  Все   Вниз
  Отправить эту тему    Печать  
Автор Тема: Поддержка PAC-файлов  (Прочитано 48531 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Merh
Пользователь
**

Репутация: +0/-4
Offline Offline

Сообщений: 90


« Ответ #60 : 14 января 2018, 23:21:48 »

Не хотелось бы вас огорчать, но со зрением беда.
Скорее со знанием. Я поэтому пример синтаксиса и спросил.

Цитировать
глядя на надписи видно куча разных ретурнов,

да.
Цитировать
а перед ними куча разынх условий содержащих или адрес или ип, что как бы намекает что во зависимости от условия будет возвращено разное значение

Угу, на кажое из сработавших условий - вот потом оно и перенаправится.
Но логику работы условий я не понял.

Цитировать
если вы с хк хотите трафик гнать в тор
то есть можно не из "тор" в хендикеш, а наоборот, из хендикеша - заворачивать в "тор"?

Цитировать
1) в хк есть свой список условных прокси и если вам нужно всего пару адресов туда перекидывать то этот выбор удобнее ибо наглядно и настраевоемо через хк

Это вот тут? То есть если мне надо всего так 50 сайтов, мне проще их здесь написать и к каждому проксю, или они все проксей обработаются, который впишешь?


Цитировать
2) использовать данное расширение удобно если есть список

именно. Который, я, правда, пока не понимаю - как надо создать для своего набора сайтов. Мне было бы удобно ну там для 30-40 сайтов создать себе список, и подключать по мере надобности.

Цитировать
пс: если нужно много пак файлов запустите много расширений
А их не надо переписывать? Достаточно сменить название, прикрепить в "расширениях" и каждый скрипт подхватит по одному списку РАС?
Сообщить модератору   Записан
nickston
Пользователь
**

Репутация: +4/-0
Offline Offline

Сообщений: 93


« Ответ #61 : 14 января 2018, 23:36:32 »

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

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

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

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

не надо, да
Сообщить модератору   Записан
Merh
Пользователь
**

Репутация: +0/-4
Offline Offline

Сообщений: 90


« Ответ #62 : 14 января 2018, 23:45:13 »

Цитировать
в пак от анитзапрета и подразумевает дургуй подход что надо гоним в прокси все остальное мимо.
Вот это и требуется, да.

Цитировать
не надо понимать, открывайте уже имеющейся пак смотри как там и делайте также.
или перепишите расширение под свою задачу, данное расширение решает вопрос с пак от антизапрета и под него и заточено, в вашем случае вам много чего не надо, придумайте свою структуру файла ее и читайте своим расширением.
Если бы я понимал, как это сделать.. разве бы я спрашивал.. я обычный юзверь, которому ***ский РКН заблочил группу с нарисованными цветными лошадьми. Злой
Сообщить модератору   Записан
nickston
Пользователь
**

Репутация: +4/-0
Offline Offline

Сообщений: 93


« Ответ #63 : 14 января 2018, 23:50:05 »

что пак что луа текстовые файлы, открывайте хоть блокнотом и смотрите, а дальше что вам проще/быстрее/удобнее
Сообщить модератору   Записан
Merh
Пользователь
**

Репутация: +0/-4
Offline Offline

Сообщений: 90


« Ответ #64 : 15 января 2018, 13:12:46 »

что пак что луа текстовые файлы, открывайте хоть блокнотом и смотрите
Так мозгов жи нет, что тогда смотреть-то?
Хотя, я, конечно, открыл, ещё в самом начале, посмотрел.

В скрипте в 3 местах минимум, вижу обращение к proxy.antizapret.prostovpn.org:3128 это, я так понимаю - сам прокси, к которому будет стучаться скрипт, и antizapret.prostovpn.org/proxy.pac а это уже сам "рас" файл.

Значит, чтобы заработал скрипт с другим скриптом\тами, надо в этих трёх местах поменять:
1) адрес, куда скрипт будет стучаться: proxy.antizapret.prostovpn.org:3128
2) название самого "рас", который скрипт будет обрабатывать: antizapret.prostovpn.org/proxy.pac

Если я правильно понимаю, то это в 3 местах:
Код:
function header_send()
local base_ip= hc.get_global('IPList2proxy_ip')
  local base_name= hc.get_global('IPList2proxy_name')
if #base_ip<1 and #base_name<1 then return end
  local Host = re.find(hc.request_header, [[^Host: *\K[^(\r\n)|(:)]+]])
  hc.put_to_log('Host-'..Host)
 -- hc.put_to_log('Host2-'..hc.request_header)
if not Host then return end
  --- check hame
  local i
  for i=1,#base_name do
    if base_name[i]==Host then
      hc.use_proxy= 'proxy.antizapret.prostovpn.org:3128';
      --hc.put_to_log('monstring='..hc.monitor_string)
      hc.monitor_string = hc.monitor_string .. ', IPlist2proxy'
      --hc.put_to_log('monstring2='..hc.monitor_string)
      return
    end
  end

Код:
local IP= hc.get_host_IP(Host)
  --hc.put_to_log('url-'..hc.url..'   IP-'..IP)
  --- check ip
if not IP then return end
     
  --for i=1, #al do
  for i=1, #base_ip do
    if base_ip[i]==IP then
    hc.use_proxy= 'proxy.antizapret.prostovpn.org:3128';
      hc.monitor_string = hc.monitor_string .. ', IPlist2proxy'
    return

Код:
function timer()
  t= os.time()
  if hc_static['NextStart'] < t then
    hc_static['LastStart']= t
    hc_static['NextStart']= t+hc_static['Period']*60
    SaveParams()
    local https_header = 'CONNECT https://antizapret.prostovpn.org:443 HTTP/1.1\r\nHost: https://antizapret.prostovpn.org\r\nConnection: keep-alive\r\n\r\n'
    hc.send_request('GET https://antizapret.prostovpn.org/proxy.pac HTTP/1.1\r\nUser-Agent: IPList\r\nConnection: close\r\n\r\n','',https_header)
   
    --hc.execute_cmd('ClearCache')
    --hc.put_msg('Загрузка и обновление pac')
    local s,e=hc.get_cache_file_name('https://antizapret.prostovpn.org/proxy.pac')
    hc.put_to_log('pac file loaded to- '..s)
    if e then
      local f = io.open(s, 'r')
      if f then
          local FilePac = f:read('*a')
          f:close()
          f = io.open(get_path()..[[proxy.pac]],'w')
          if f then
            f:write(FilePac)
            f:close()
            read_pac()
Сообщить модератору   Записан
nickston
Пользователь
**

Репутация: +4/-0
Offline Offline

Сообщений: 93


« Ответ #65 : 15 января 2018, 13:41:01 »

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

в коде имя файла пак можно не менять можно изменить самого файла
Сообщить модератору   Записан
Merh
Пользователь
**

Репутация: +0/-4
Offline Offline

Сообщений: 90


« Ответ #66 : 15 января 2018, 13:59:28 »

Цитировать
первые 2 да, 3 нет
как же третий нет, если там строки:
Код:
local https_header = 'CONNECT https://antizapret.prostovpn.org:443 HTTP/1.1\r\nHost: https://antizapret.prostovpn.org\r\nConnection: keep-alive\r\n\r\n'
    hc.send_request('GET https://antizapret.prostovpn.org/proxy.pac HTTP/1.1\r\nUser-Agent: IPList\r\nConnection: close\r\n\r\n','',https_header)
разве не менять же?
Цитировать
если есть желание можете доработать скрипт что бы можно было в одном файле указать кучу списков и к ним прокси, что бы все было в одном месте
Я совершенно не смыслю ни в LUA, ни в скриптах.

Сообщить модератору   Записан
nickston
Пользователь
**

Репутация: +4/-0
Offline Offline

Сообщений: 93


« Ответ #67 : 15 января 2018, 14:19:46 »

не менять, то что там строки это хорошо, почти отлично

1) забить и просто заменить прокси и создать кучу расширений
2) открыть скрипты луа и в инете почитать
3) сразу почитать потом скрипты

пс: я тоже в луа не шарю
Сообщить модератору   Записан
Merh
Пользователь
**

Репутация: +0/-4
Offline Offline

Сообщений: 90


« Ответ #68 : 15 января 2018, 14:37:19 »

Если изменить "рас" под себя, то вот такой пример будет работать?
(не конкретно с этим скриптом, я про то - правильно я синтаксис понимаю, или нет?)
Код:
// Generated on Fri Jan 12 11:10:49 MSK 2018

d_ad = "\                 // это начало списка?
a-class.org \
a-diplom.com \
a-diploma.com \
a-diplomas.com \
a-diploms.com \
a-hentai.com \
a-mks.ru \
a-plagiata.net \
a-pozdrav.info \
".split(" ");            //а это закрытие конца текста списков сайтов?

on FindProxyForURL(url, host) {
  if (/\.(ru|co|cu|com|info|net|org|gov|edu|int|mil|biz|pp|ne|msk|spb|nnov|od|in|ho|cc|dn|i|tut|v|dp|sl|ddns|duckdns|livejournal|herokuapp|azurewebsites|ucoz)\.[^.]+$/.test(host))
    host = host.replace(/(.+)\.([^.]+\.[^.]+\.[^.]+$)/, "$2");
  else
    host = host.replace(/(.+)\.([^.]+\.[^.]+$)/, "$2");

  if (/^[a-d]/.test(host)) curarr = d_ad;
  else if (/^[e-h]/.test(host)) curarr = d_eh;
  else if (/^[i-l]/.test(host)) curarr = d_il;
  else if (/^[m-p]/.test(host)) curarr = d_mp;
  else if (/^[q-t]/.test(host)) curarr = d_qt;
  else if (/^[u-z]/.test(host)) curarr = d_uz;
  else curarr = d_other;

  var oip = dnsResolve(host);

  for (var i = 0; i < d_ipaddr.length; i++)
    if (oip === d_ipaddr[i]) {oip = 1; break;}

  for (var i = 0; i < curarr.length; i++) {
    if (oip === 1 || host === curarr[i]) {
    return "HTTPS 192.30.85.22  1080; PROXY 192.30.85.22     1080; DIRECT"; //proxy.antizapret.prostovpn.org:3128 меняем на наше прокси 192.30.85.22  1080
    }
  }

  return "DIRECT";

здесь я кинул несколько примерных сайтов, и поменял прокси через которое он ходил proxy.antizapret.prostovpn.org:3128 на свой 192.30.85.22  1080
Больше одного прокси, подозреваю ,в "рас" дописать нельзя? А то, ну может он сдох уже, а я не знаю, вот на случай, что сдох один - так работать будет второй, третий..
« Последнее редактирование: 15 января 2018, 14:53:31 от Merh » Сообщить модератору   Записан
nickston
Пользователь
**

Репутация: +4/-0
Offline Offline

Сообщений: 93


« Ответ #69 : 15 января 2018, 14:57:55 »

опять все не так. Следите за мыслью:
1) в proxy.pac берется список и не важно что там еще есть в файле
2) скрипт луа дербанить этот список и "мониторит" запросы, если адрес в запросе попал в список то к запросу добавляется прокси из этого скрипта

отсюда план действий в прокси меняете список, в луа меняете прокси

можно сказать что это начало и конец списка, а можно предположить что это массив в виде строки где разделителем указан пробел

По поводу HTTPS 192.30.85.22  1080; PROXY 192.30.85.22     1080; DIRECT" , так сказать мои размышления:
1) скорее всего тут подразумевается цепочка отказа, те пробуем первый прокси, за ним второй и если и он мертвый то напряму, если требуется шифрование то мне думается лучше не выйти в инет чем послать данные в открытом виде
2) для прокси скорее всего без разницы запрос http или https, посему мне думается что HTTPS 192.30.85.22  1080=PROXY 192.30.85.22     1080 если HTTPS 192.30.85.22  1080 так вообще можно писать.

опять таки pac файлы браузер может и с диска открывать так что если надо проверить пробуйте в браузере, то что было в начале касалось сути работы расширения, если для теста то можете менять прокси на свой
Сообщить модератору   Записан
alexey65536
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 9



« Ответ #70 : 07 февраля 2018, 19:03:35 »

Скачал расширение и рас-файл, добавил расширение в список НС, поставил галку "Активно" - а вместо соотв. сайтов открывается затычка РТ...
Сообщить модератору   Записан

<===>
nickston
Пользователь
**

Репутация: +4/-0
Offline Offline

Сообщений: 93


« Ответ #71 : 07 февраля 2018, 19:59:13 »

включите лог в мониторе посмотрите что там при включении расширения и при открытии сайта смотрите что пишет в строке с правилом
Сообщить модератору   Записан
alexey65536
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 9



« Ответ #72 : 07 февраля 2018, 21:33:07 »

Сейчас просто не открывается, раньше открывало заглушку РТ.
https://pastebin.com/qMxxBMbQ
Плагин в логе присутствует, а что-то большее из этого мрака понять у меня не получается.
Сообщить модератору   Записан

<===>
nickston
Пользователь
**

Репутация: +4/-0
Offline Offline

Сообщений: 93


« Ответ #73 : 07 февраля 2018, 22:58:08 »

Сейчас просто не открывается, раньше открывало заглушку РТ.
https://pastebin.com/qMxxBMbQ
Плагин в логе присутствует, а что-то большее из этого мрака понять у меня не получается.
Судя по логу, в инет лезете фирефоксом, вот ему чем то не нравиться выход в инет на https через хенди кешь (или не через хенди а последующие прокси), попробуйте другой браузер
« Последнее редактирование: 07 февраля 2018, 23:39:09 от nickston » Сообщить модератору   Записан
alexey65536
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 9



« Ответ #74 : 08 февраля 2018, 08:27:35 »

Попробовал хром. Заглушка (на firefox сейчас тоже).
Возможно, что-то не так делаю при установке расширения.
Второй вариант - оно таки не работает. По-моему, тут третьего не дано.

Расширение берет рас-файл с сервера или из локального каталога? Я пробовал редактировать локальный файл, но результат нулевой.
« Последнее редактирование: 08 февраля 2018, 08:45:34 от alexey65536 » Сообщить модератору   Записан

<===>
nickston
Пользователь
**

Репутация: +4/-0
Offline Offline

Сообщений: 93


« Ответ #75 : 08 февраля 2018, 09:05:21 »

Чуть выше описан принцип работы, с локального файла
Проверяется легко:
1) убираю прокси из браузера
2) открываю pac файл и перехожу по ссылкам из него пока не получу сообщение о заблокированной странице (не все из этого списка заблокированны)
3) включаю прокси
4) опять захожу на ту же ссылку все работает
5) в хк в мониторе вижу "08.02.2018/09:10:12 local/127.0.0.1 http://a-diplom.com/ 2525 2525/402 100% 274 "200 OK gzip" IPlist2proxy, З.1, Deleted small file, CM:0 hits
IPlist2proxy 
З.1 (Запись в кэш): .* 
Deleted small file 
CM:0 hits"

из чего видно iplist2proxy что как бы намекает что все путем
« Последнее редактирование: 08 февраля 2018, 09:14:20 от nickston » Сообщить модератору   Записан
alexey65536
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 9



« Ответ #76 : 08 февраля 2018, 09:22:04 »

Попробовал с условными прокси в НС - добавил несколько заблокированных сайтов в список, и прописал там прокси антизапрета. И все работает. Т.к. кол-во "запрещенных" сайтов, которыми я пользуюсь, меньше чем кол-во пальцев на руке, то, думаю, это лучший выход, чем безуспешные попытки разобраться, как работает расширение.
Сообщить модератору   Записан

<===>
ozr
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 3


« Ответ #77 : 13 февраля 2018, 16:24:00 »

С февраля 2018 года по ссылке antizapret.prostovpn.org/proxy.pac отдаётся файл proxy-nossl.pac, формат которого по отношению к proxy.pac изменён: теперь в одной строке файла -- не одно, а несколько доменных имён или адресов через пробел. Соответственно, старая версия iplist2proxy такого формата файла не понимает (даже если ей его подсунуть руками, либо переименовав файл proxy-nossl.pac в proxy.pac, либо исправив в самом .lua имя анализируемого файла с proxy.pac на proxy-nossl.pac), а новой пока нет. Если кому-то кажется, что старая версия работает, то посмотрите в первых 2-х строках proxy.pac дату создания (компиляции) этого файла (у меня последний файл в старом формате датирован 3-м февраля, а в новом датирован текущей датой), приняв во внимание, что он, как правило, обновляется несколько раз в сутки. С одной стороны, не особо и критично: сейчас РКН в основном добавляет только сайты (клоны сайтов?) / IP-адреса про казино, проституток, про разного рода липовые документы и букмекерские конторы, а нужный сайт или IP-адрес в случае чего можно вписать в него (в старом формате) руками. С другой стороны, закономерно прогнозируются претензии новых (с февраля) пользователей этого скрипта на то, что он в текущей версии неработоспособен (собственно, одна из таких претензий -- чуть выше).
Сообщить модератору   Записан
nickston
Пользователь
**

Репутация: +4/-0
Offline Offline

Сообщений: 93


« Ответ #78 : 13 февраля 2018, 21:33:28 »

Чуть выше проблема была с фирефоксом, расширение все там нормально считало
Сообщить модератору   Записан
ozr
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 3


« Ответ #79 : 26 апреля 2018, 13:08:29 »

В очередной раз изменился формат .PAC-файла: добавили поддержку диапазонов IP-адресов и связанный с этой поддержкой новый адрес прокси-сервера -- CCAHIHA.antizapret.prostovpn.org:3128
Сообщить модератору   Записан
Страниц: 1 2 3 [4]  Все   Вверх
  Отправить эту тему    Печать  

 
Перейти в: