Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   mIRC: proxy script by elimS (https://forum.antichat.xyz/showthread.php?t=68974)

elimS2 01.05.2008 13:52

mIRC: proxy script by elimS
 
Решил выложить свой скрипт.

Этот скрипт освобождает от ручной работы когда надо залезть в irc через прокси.

Имея список прокси не факт что из них все работают, не факт что эта прокся еще не заглайнена в irc сети и не факт что она не находится в блек листе. Потому довольно много надо сделать телодвижений чтоб залесть в irc через прокси, после чего можно через пару минут схватить глайн и искать дальше следуйщую проксю. А что если надо завести как можно больше ботов (хочется побаловатся киберсквоттингом или задосить вредного собеседника)? Как правило 1 proxy = 3 бота. Тогда Вам пригодится следуйщий скрипт.

Код:

;begin-------------прокси-скрипт elimS------------------------------
alias proxy_on_of {
  if (%proxy_connect == on) {
    %proxy_connect = off 
    timer_proxy_conect off
    firewall off
  }
  else { %proxy_connect = on | %proxy_n_file = 1 | %proxy_poputka = sock4 | %proxy_n = 1 | firewall on }
}
alias proxy_connect {
  if (%proxy_n_file = 1) $iif(%proxy_socks4_5 == on,%filename_proxylist = %filename_proxylist_4_5,inc %proxy_n_file 1)
  if (%proxy_n_file = 2) $iif(%proxy_socks4 == on,%filename_proxylist = %filename_proxylist_4,inc %proxy_n_file 1) 
  if (%proxy_n_file = 3) $iif(%proxy_socks5 == on,%filename_proxylist = %filename_proxylist_5,inc %proxy_n_file 1)
  if (%proxy_n_file = 4) $iif(%proxy_socks@ == on,%filename_proxylist = %filename_proxylist_@,%proxy_n_file = 1)
  %proxy_n = $lines( %filename_proxylist )
  if ( %proxy_dic_use == on ) {
    fullname $read( %filename_dic )
    emailaddr $read( %filename_dic )
    nick $read( %filename_dic )
    anick $read( %filename_dic )
    identd on $read( %filename_dic )
  } 
  %proxy_info = $read( %filename_proxylist , p , %proxy_i )
  %proxy_ip = $gettok(%proxy_info,1,58 )
  %proxy_port = $gettok(%proxy_info,2,58 )
  if ( %proxy_n_file = 4 ) %proxy_port = $gettok(%proxy_port,1,64 )
  if ( %proxy_poputka == sock5 ) && ( %proxy_n_file == 1 ) %proxy_poputka = sock4 
  if ( %proxy_n_file = 1 ) { $iif(%proxy_poputka == sock4,%proxy_sock = -m4,%proxy_sock = -m5) | %proxy_poputka = sock5 }
  if ( %proxy_n_file = 2 ) %proxy_sock = -m4
  if ( %proxy_n_file = 3 ) %proxy_sock = -m5
  if ( %proxy_n_file = 4 ) $iif($gettok(%proxy_info,2,64 ) == SOCKS4,%proxy_sock = -m4,%proxy_sock = -m5)
  echo -e прокся № %proxy_i из %proxy_n проксей. Прокся %proxy_ip , порт %proxy_port , тип socks %proxy_sock
  firewall %proxy_sock on %proxy_ip %proxy_port   
  if ( %proxy_i <= %proxy_n ) {
    server
    if (%proxy_timeout == on) timer_proxy_conect 1 %proxy_secs proxy_connect
  }
  if ( %proxy_n_file != 1 ) inc %proxy_i 1
  if ( %proxy_i > %proxy_n ) { %proxy_i = 1 | inc %proxy_n_file 1 }
  if ( %proxy_n_file > 4 ) && ( %proxy_random == on ) %proxy_n_file = 1   
}
menu menubar {
  прокси-скрипт elimS
  .$iif(%proxy_connect == on,$style(1)) вкл/выкл: proxy_on_of
  .$iif(%proxy_random == on,$style(1)) ходить по проксям по кругу: $iif(%proxy_random == on,%proxy_random = off,%proxy_random = on)
  .$iif(%proxy_dic_use == on,$style(1)) использовать словарь: $iif(%proxy_dic_use == on,%proxy_dic_use = off,%proxy_dic_use = on)
  .настройка: dialog -m proxy_options proxy_options
}
dialog proxy_options {
  title "Настройки прокси скрипта"
  size -1 -1 140 250
  option dbu
  check " вкл/выкл прокси скрипт", 10, 10 3 113 10
  check " прыгать по кругу", 9, 10 15 113 10
  check " таймаут, секунд", 26, 10 25 55 10
  edit "",27, 70 25 20 10, read autohs 
  box "файл словаря",4, 5 40 124 40 
  button "...",2, 85 65 40 10
  edit "",3, 10 65 70 10, read autohs 
  check " использовать словарь", 6, 10 50 113 10
  box "файл прокси листа, тип socks4/5",5, 5 80 124 40
  button "...",7, 85 105 40 10
  edit "",8, 10 105 70 10, read autohs 
  check " использовать", 19, 10 90 113 10
  box "файл прокси листа, тип socks4",11, 5 120 124 40
  button "...",12, 85 145 40 10
  edit "",13, 10 145 70 10, read autohs
  check " использовать", 14, 10 130 113 10
  box "файл прокси листа, тип socks5",15, 5 160 124 40
  button "...",16, 85 185 40 10
  edit "",17, 10 185 70 10, read autohs
  check " использовать", 18, 10 170 113 10
  box "файл прокси листа c записями proxy:port@socks",22, 5 200 124 40
  check " использовать", 23, 10 210 113 10 
  button "...",24, 85 225 40 10
  edit "",25, 10 225 70 10, read autohs
  text "написал elimS", 20, 10 240 40 10
  link "mailto:elimS2@gmail.com", 21, 60 240 70 10
}
on 1:dialog:proxy_options:init:0: {
  did -a proxy_options 3 %filename_dic
  did -a proxy_options 8 %filename_proxylist_4_5
  did -a proxy_options 13 %filename_proxylist_4
  did -a proxy_options 17 %filename_proxylist_5
  did -a proxy_options 25 %filename_proxylist_@
  did -a proxy_options 27 %proxy_secs
  if (%proxy_connect == on) did -c proxy_options 10
  if (%proxy_random == on) did -c proxy_options 9
  if (%proxy_dic_use == on) did -c proxy_options 6
  if (%proxy_socks4_5 == on) did -c proxy_options 19
  if (%proxy_socks4 == on) did -c proxy_options 14
  if (%proxy_socks5 == on) did -c proxy_options 18
  if (%proxy_socks@ == on) did -c proxy_options 23
  if (%proxy_timeout == on) did -c proxy_options 26
}
on 1:dialog:proxy_options:sclick,edit:*: {
  if ($did == 2) {   
    %filename_dic = $file="Выберите текстовый файл для словаря:" .txt
    did -r proxy_options 3
    did -a proxy_options 3 %filename_dic
  }
  if ($did == 7) {
    %filename_proxylist_4_5 = $file="Выберите текстовый файл для прокси листа socks4/5:" .txt
    did -r proxy_options 8   
    did -a proxy_options 8 %filename_proxylist_4_5
  }
  if ($did == 12) {
    %filename_proxylist_4 = $file="Выберите текстовый файл для прокси листа socks4:" .txt
    did -r proxy_options 13   
    did -a proxy_options 13 %filename_proxylist_4
  }
  if ($did == 16) {
    %filename_proxylist_5 = $file="Выберите текстовый файл для прокси листа socks5:" .txt
    did -r proxy_options 17   
    did -a proxy_options 17 %filename_proxylist_5
  }
  if ($did == 24) {
    %filename_proxylist_@ = $file="Выберите текстовый файл для прокси листа proxy:port@socks:" .txt
    did -r proxy_options 25   
    did -a proxy_options 25 %filename_proxylist_@
  }
  if ($did == 26) {
    $iif(%proxy_timeout == on,%proxy_timeout = off,%proxy_timeout = on)
    if (%proxy_timeout == on) %proxy_secs = $?="Укажите задержку в секундах"
    if (%proxy_timeout == off) %proxy_secs = $null
    did -r proxy_options 27   
    did -a proxy_options 27 %proxy_secs
  }
  if ($did == 6) $iif(%proxy_dic_use == on,%proxy_dic_use = off,%proxy_dic_use = on)
  if ($did == 9) $iif(%proxy_random == on,%proxy_random = off,%proxy_random = on)
  if ($did == 10) proxy_on_of
  if ($did == 19) $iif(%proxy_socks4_5 == on,%proxy_socks4_5 = off,%proxy_socks4_5 = on)
  if ($did == 14) $iif(%proxy_socks4 == on,%proxy_socks4 = off,%proxy_socks4 = on)
  if ($did == 18 ) $iif(%proxy_socks5 == on,%proxy_socks5 = off,%proxy_socks5 = on)
  if ($did == 21 ) run explorer mailto:elimS2@gmail.com
  if ($did == 23 ) $iif(%proxy_socks@ == on,%proxy_socks@ = off,%proxy_socks@ = on)
}
on *:CONNECTFAIL: {
  if ( %proxy_connect == on ) proxy_connect
}
on *:DISCONNECT: {
  if ( %proxy_connect == on ) proxy_connect
}
on *:snotice:*: {
  if ( $1- == *** Looking up your hostname... ) timer_proxy_conect off
}
on *:CONNECT: {
  if ( %proxy_dic_use == on ) {
    anick $read( %filename_dic )
  }
}
;end---------------прокси-скрипт elimS-------------------------------

копируем этот код и заходим в mirc-редактор скритов (сочетание клавиш alt+r).

Вы должны увидеть приблезительно следуйщее:

http://www.picamatic.com/show/2008/0...11_776x480.JPG

Если окошко у Вас не пустое и в нем уже есть какой-то скрипт, тогда создавайте новый как показано выше на рисунке.

Вставляйте код и жмите "ок".

Теперь жмем на меню со скриптами.


У меня оно называется "Смайл Скрипт", у Вас оно будет называться по другому, в зависимости от клиента, но находится это меню всегда в одном и том же месте - между "tools" и "windows".

Выбираем "прокси-скрипт elimS" и жмем "Настройка".


http://www.picamatic.com/show/2008/0...97_524x445.JPG

Перейдем к настройке.

У Вас должно появится следуйщее окошко:

http://www.picamatic.com/show/2008/0...62_287x532.JPG

"Вкл/Выкл" - включение/выключение работы скрипта

"Прыгать по кругу" - после того, как скрипт дошел до последней прокси, все начинается заново, по кругу, с первой прокси.

"Таймут, секунд" - ждем конекта к проксе указанное количество секунд, если нету ответа переходим к следуйщей

"Использовать словарь" - рандомайзит из словаря Ваш ник, альтернатив ник, id, full name, email. Жмите кнопку и указывайте файл словаря. Я обычно использую словарь с фамилиями и именами актеров.

"файл прокси листа, тип socks4/5" - текстовый файл, в каждой строке по одной проксе, запись в виде "proxy:рort". Скрипт сначала пытается конектится через socks4, потом через socks5.

"файл прокси листа, тип socks4" - тоже самое что и предыдущий пункт, скрипт пытается конектится к проксе только по протоколу socks4.

"файл прокси листа, тип socks5" - скрипт пытается конектится к проксе только по протоколу socks5

"файл прокси листа c записями proxy:рort@socks" - текстовый файл, в каждой строке по одной проксе, запись в виде "proxy:рort@SOCKS4" или "proxy:рort@SOCKS5". Скрипт конектится по протоколу который указан после собаки.

Можно выбрать сразу все типы прокси листов, тогда скрипт будет проходить по порядку по каждому прокси-листу.

При Глайне, Дисконекте или неудачном соединении скрипт переходит к следуйщей проксе и пытается соединиться. Обратите внимание - даже если Вы нажмете кнопку "отсоединиться" - скрипт начнет соединятся со следуйщей проксей. Это удобно когда Вам не понравилась прокся, или вы захотели поменять IP. Потому если Вы действительно хотите просто отсоединиться - не забудьте сначала отключить скрипт.

Имейте в виду что далеко не во всех сетях можно подключится через прокси: одни фильтруют по блек-листам, другие смотрят с какого порта идет конект, третьи вообще хитрыми способами проверяют наличие прокси. Например далнет при попытке конекта через проксю сообщает что надо "Install identd".

Удачи! Тестируйте. Замечания и предложения по расширению возможностей пишите сюда - буду добавлять.

zealot 07.06.2008 14:33

пара вопросов по скрипту
 
По всему должна быть шикарная вещь, давно такой искал. Но что-то не работает. Прицепил к mIRC'у, приладил socks4-4,5 list, запускаю connect... В окне трейсера пишет что firewall on, но ни до одного из серверов достучаться не может. Проксевые сервера из списка почему-то не переключает, по крайней мене в окне трейсера не пишет. Waitstate установлен 5 sec. Типа помогите чайнику. :) Надеючь это не "троянское" чудо. :p

elimS2 07.06.2008 14:42

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

Напиши плиз версию мирк. Кста ты поставил галочку напротив: "включить прокси-скрипт"?. какого типа прокси используешь. кинь сюда свой текстовый файл с проксями, чтоб я знал в каком синтаксисе там хранятся прокси. кста прокси нужны соксовые.

и после того как ты настроил скрипт, нажал кнопочку "использовать прокси-скрипт". надо нажать на стандартную кнопку "конект" в мирк-клиенте

elimS2 07.06.2008 14:57

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

zealot 07.06.2008 15:53

Спасибо за быстрый ответ! Вот перекинул файл с проксями на C:\proxy.txt, еще на всякий случай сделал только socks4, но все по прежнему: "* Firewall is on Socks4 (xxx.xxx.xxx.xxx 1080)
-
* Connecting to irc.dal.net (6661)
-
* Firewall: Unable to connect to firewall
-
* Connect retry #1 irc.dal.net (6661) (dns pool)
-
* Firewall: Unable to connect to firewall
-
* Connect retry #2 hotspeed.sg.as.dal.net (6666)
-
* Firewall: Unable to connect to firewall".

И так может до бесконечности. Может я туплю, и надо сервер IRC'шный как-то особенно подобрать? Прокси из файла берет как-то хитро, почему-то только третий по списку, и уже никуда его не переключает, хотя опция "ходить по кругу" включена. Если есть идеи как пофиксить то было бы здорово. Но если нет, то как говориться - увы. :)

p.s. Пока это писал насчитал 40 failed попыток. Пользую mIRC v6.31 engl.

elimS2 07.06.2008 16:08

убери в настройках мирка конект ретри

http://www.picamatic.com/show/2008/0...80_629x371.JPG

К далнету через прокси мне неудавалось подключится, у них система хитроумная, на проверку идентов.

прокси соксовые можешь взять отсюда: Free Socks Proxy

прокси сервера скриптом должны менятся, надо только сесть и подождать пока живая и быстрая найдется

зы: надо будет в скрипте сделать чтоб эта опция автоматом отключалась)


зы2: посмотрел - нету смысла посредством скрипта автоматически отключать "conect retry". там такая функция не предусмотрена, можно отключить только если перезаписывать скриптом файл mirc.ini. оно хранится в файле вот тут :

n0=0,1,0,1,1,0,300,1,0,1,1,0,0,0,0,0,1,0,0,0,4096, 0,1,0,0,0,1,1,0,50,1,0,0,1,0
n1=5,100,1,1,551,27,22,0,4,1,0,0,1,1,1,1,1,1,0,0,1 ,1,1,0,5,0,1,0,0,0,1,0,1,0,1,10
n2=0,0,0,1,1,1,1,1,0,60,120,0,0,1,0,0,1,1,0,120,20 ,10,0,0,1,0,0,1,0,0,0,0,0,0,1,3
n3=10000,0,0,0,0,0,1,1,0,1,0,0,0,0,1,1,1,1,0,1,0,0 ,0,0,1,1,0,2,0,2,1,3,180,0,1,0,0
n4=1,0,1,0,0,0,9999,0,0,1,1,1,1024,1,1,9974,10,0,0,0,1,1,1,4,1,5000,1,5,0,0,3,0,1,1,0,0, 0
n5=1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,0,300,30,10,0 ,1,29,0,0,1,8192,1,0,0,115,0,1,0,0
n6=0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,100 0,1,1,0,1,1,0,1,4,1,0,1,0,0
n7=1,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,1,70,0,4,0,1,1, 1,1,1,0,0,0,0,1,1,1,1,1,0,1
n8=1,3,1,207,1,1,1,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0

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

zealot 07.06.2008 16:36

Всё заработало, и даже живая прокся нашлась. ElimS ты крут! Спасибо! :D

elimS2 07.06.2008 16:39

незачто:) баги и пожелания пиши сюда)

кста в планах опубликовать инвайт-скрипт: собирает по сети все ники, а потом тупо начинает всех инвайтит на канал. при превышении лимита инвайтов - реконект и дальше продолжение инвайтов. канал быстро растет, так как у многих стоит автоджойн при инвайте. а если еще поставить галочку напротив - "инвайтить при выходе из канала". челове просто не может покинуть канал :)

и спам скрипт - тоже собирает по сети ники, и потом всем начинает писать в приват указанное сообщение

elimS2 01.02.2009 17:28

Ищите инвайт скрипт здесь - http://forum.antichat.ru/thread104183.html

Babyboy 23.03.2009 22:11

единственное место, где я нашел то, что нужно. Афтару дико респектоз!


Время: 01:43