Об IRC. Доступно и со вкусом.

Основы протокола Socks4 на mIRC скриптах

Основы соединения в irc через прокси, а именно через Sock4 протокол. Рекомендуется более или менее продвинутым скриптописателям.
Сегодня мы разберем один из непростых вопросов, как же подсоединить допустим нашего бота из прошлой статьи, используя mIRC скрипты. Применения сокс4 протокола довольно велико, например когда вы не можете зайти из-за того что сервер не пускает много соединений с одной ip адреса, или же вашего бота забанили на канале, но вы очень хотите туда попасть, или же просто любителям пофлудить :)

Ну чтож начнем (то что взято из предыдущей статьи без комментариев):

; конекаемся к сокс4 прокси, вместо ip и port вписываем соответственно айпи и порт сокс4 прокси
alias bot { sockopen sock4clone ip port }

on 1:sockopen:sock4clone: {
; если ошибка то выход
if ($sockerr > 0) { return }
; создаем бинарную переменную byte и вписывает туда данные согласно RFC сокс4, здесь 62.192.224.50 ip адрес сервера к которому подключаемся
bset &byte 1 4 1 $int($calc(6667/256)) $calc(6667 - $int($calc(6667 / 256)) * 256) $replace(62.192.224.50,$chr(46),$chr(32))
; посылаем нашу переменную
sockwrite $sockname &byte
}

on 1:sockread:sock4clone: {
; полученную от сокета инфу суем в переменную
sockread %sock4.text
; и в бинарную переменную
sockread &s4
; если первые два символа бинарной переменной равны 90
if ($bvar(&s4,2) == 90) {
; ну а это стандартный коннект в ирк
sockwrite -tn $sockname USER 111 222 333 444
sockwrite -tn $sockname NICK sockbot
sockwrite -tn $sockname join #test
sockwrite -tn $sockname privmsg #arkhangelsk :socks4 test
}
if ( $gettok(%sock4.text,1,32) == PING) { sockwrite -tn $sockname PONG $remove($gettok(%sock4.text,2,32),$chr(58)) }
if ($gettok(%sock4.text,2,32) == KICK) { sockwrite -tn $sockname JOIN $gettok(%sock4.text,3,32) }
}

Все вопросы в форум. На этом пока все, удачи.