mIRC: proxy script by elimS

Discussion in 'PHP' started by elimS2, 1 May 2008.

  1. elimS2

    elimS2 Elder - Старейшина

    Joined:
    21 Mar 2008
    Messages:
    195
    Likes Received:
    159
    Reputations:
    11
    Решил выложить свой скрипт.

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

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

    Code:
    ;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:[email protected]", 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:[email protected]
      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).

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

    [​IMG]

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

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

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


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

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


    [​IMG]

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

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

    [​IMG]

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

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

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

    "Использовать словарь" - рандомайзит из словаря Ваш ник, альтернатив ник, 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".

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

    zealot New Member

    Joined:
    7 Jun 2008
    Messages:
    3
    Likes Received:
    2
    Reputations:
    0
    пара вопросов по скрипту

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

    elimS2 Elder - Старейшина

    Joined:
    21 Mar 2008
    Messages:
    195
    Likes Received:
    159
    Reputations:
    11
    то что не троянское - отвечаю, да и если ты разбираешься в скриптинге - без проблем можешь прочитать код. да и я могу помочь разьяснить каждую строчку. ща подумаю почему у тебя не работает. я им пользуюсь постоянно

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

    и после того как ты настроил скрипт, нажал кнопочку "использовать прокси-скрипт". надо нажать на стандартную кнопку "конект" в мирк-клиенте
     
    #3 elimS2, 7 Jun 2008
    Last edited: 7 Jun 2008
  4. elimS2

    elimS2 Elder - Старейшина

    Joined:
    21 Mar 2008
    Messages:
    195
    Likes Received:
    159
    Reputations:
    11
    я тут еще подумал.. помню что была проблема если в адресе находятся пробелы. тоесть сделай чтоб полный путь к файлам с проксями был без пробелов. если поможет и проблема была в этом - скажешь, буду править
     
  5. zealot

    zealot New Member

    Joined:
    7 Jun 2008
    Messages:
    3
    Likes Received:
    2
    Reputations:
    0
    Спасибо за быстрый ответ! Вот перекинул файл с проксями на 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.
     
    #5 zealot, 7 Jun 2008
    Last edited: 7 Jun 2008
    1 person likes this.
  6. elimS2

    elimS2 Elder - Старейшина

    Joined:
    21 Mar 2008
    Messages:
    195
    Likes Received:
    159
    Reputations:
    11
    убери в настройках мирка конект ретри

    [​IMG]

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

    прокси соксовые можешь взять отсюда: 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,1000,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

    мне такой способ хранения не понравился) есть подозрения что структура этого файла меняется от версии до версии. а я стараюсь писать скрипты универсальные) так что лучше всего при надобности сам отключай в менюшке
     
    #6 elimS2, 7 Jun 2008
    Last edited: 7 Jun 2008
  7. zealot

    zealot New Member

    Joined:
    7 Jun 2008
    Messages:
    3
    Likes Received:
    2
    Reputations:
    0
    Всё заработало, и даже живая прокся нашлась. ElimS ты крут! Спасибо! :D
     
    1 person likes this.
  8. elimS2

    elimS2 Elder - Старейшина

    Joined:
    21 Mar 2008
    Messages:
    195
    Likes Received:
    159
    Reputations:
    11
    незачто:) баги и пожелания пиши сюда)

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

    и спам скрипт - тоже собирает по сети ники, и потом всем начинает писать в приват указанное сообщение
     
    1 person likes this.
  9. elimS2

    elimS2 Elder - Старейшина

    Joined:
    21 Mar 2008
    Messages:
    195
    Likes Received:
    159
    Reputations:
    11
    Ищите инвайт скрипт здесь - http://forum.antichat.ru/thread104183.html
     
  10. Babyboy

    Babyboy Banned

    Joined:
    23 Mar 2009
    Messages:
    15
    Likes Received:
    0
    Reputations:
    0
    единственное место, где я нашел то, что нужно. Афтару дико респектоз!
     
  11. elimS2

    elimS2 Elder - Старейшина

    Joined:
    21 Mar 2008
    Messages:
    195
    Likes Received:
    159
    Reputations:
    11
    На здоровье, будут пожелания по усовершенствованию - пиши
     
  12. netcat

    netcat New Member

    Joined:
    3 Nov 2010
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Такая проблемма:
    Мирк не хочет коннектиться к http проксям
    00:58:55 * Connect retry #1 irc.tambov.ru (6667)
    -
    00:58:56 * Proxy: Connection rejected

    Прокси абсолютно рабочие. В браузере работают. Не знаю в чем проблемма :confused: раньше норм коннектилось. В чем подвох?
     
  13. elimS2

    elimS2 Elder - Старейшина

    Joined:
    21 Mar 2008
    Messages:
    195
    Likes Received:
    159
    Reputations:
    11
    они как соксовые работают?
     
  14. netcat

    netcat New Member

    Joined:
    3 Nov 2010
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Да нет, как соксовые не работают. outpost фаервол не должен мешать, он и раньше был. хотя хз
     
  15. elimS2

    elimS2 Elder - Старейшина

    Joined:
    21 Mar 2008
    Messages:
    195
    Likes Received:
    159
    Reputations:
    11
    хм, я заходил в ирц с помощью скрипта только через соксовые прокси, да и сам скрипт, насколько помню, был настроен под соксы