;########################
;
; Bouncer Socket
; By [SaRRiO] 2000
; sarrio@univers.org
;
;########################
; para iniciar el dcc locker teclea: /dcclocker
; la idea de "administrar" el dcc locker en una "window" fue extraida del IRcap (autor GSi)
alias bouncer {
if (%bouncer.local == $null) set %bouncer.local 5555
if (%bouncer.server == $null) set %bouncer.server irc.olivet.com
if (%bouncer.puerto == $null) set %bouncer.puerto 6667
sockclose bouncer*
close -c@ @bouncer
window -ak @bouncer 200 300 400 100 arial 11
echo @bouncer 3Abriendo bouncer por el puerto %bouncer.local
echo @bouncer 1Redireccionando hacia12 %bouncer.server $+ : $+ %bouncer.puerto
echo -s 3Bouncer
echo -s 12Si quieres que un usuario use tu bouncer dile que teclee: /firewall on $ip %bouncer.local
echo -s 4El usuario que acceda al IRC por tu bouncer tendra tu IP...
socklisten bouncer %bouncer.local
}
on 1:SOCKLISTEN:bouncer:{
sockaccept bouncernick
echo @bouncer 3Cliente conectado:4 $sock($sockname).ip
sockclose bouncer
}
on 1:SOCKREAD:bouncernick:{
sockread %bouncer.read
if ( $sock(bouncerconnect).status == active ) { sockwrite -n bouncerconnect %bouncer.read }
if (NICK == $gettok(%bouncer.read,1,32)) && ($sock(bouncerconnect).status != active) {
sockopen bouncerconnect %bouncer.server %bouncer.puerto
set %bouncer.nick %bouncer.read
set %bouncer.tmp 1NICK:12 $remove($gettok(%bouncer.read,2,32),:) 4-1 USER:12
}
if (USER == $gettok(%bouncer.read,1,32)) && ($sock(bouncerconnect).status != active) {
set %bouncer.user %bouncer.read
set %bouncer.tmp %bouncer.tmp $gettok(%bouncer.read,2,32) 4-1 NAME:12
set %bouncer.tmp %bouncer.tmp $remove($gettok(%bouncer.read,5,32),$left($gettok(%bouncer.read,5,32),1))
set %bouncer.tmp %bouncer.tmp $gettok(%bouncer.read,6,32)
echo @bouncer %bouncer.tmp | unset %bouncer.tmp }
}
on 1:SOCKOPEN:bouncerconnect:{
if ($sockerr > 0) { echo @bouncer 4no se pudo conectar con %bouncer.server | sockclose bouncernick }
else {
sockwrite -tn bouncerconnect %bouncer.nick
sockwrite -tn bouncerconnect %bouncer.user
echo @bouncer 2Conexión con %bouncer.server por %bouncer.puerto realizada...
}
}
on 1:SOCKREAD:bouncerconnect:{
sockread %bouncer.text
if ($sock(bouncernick).status == active) sockwrite -n bouncernick %bouncer.text
unset %bouncer.text
}
on 1:SOCKCLOSE:bouncerconnect:{
if ($window(@bouncer).state == normal) || ($window(@bouncer).state == minimized) {
echo @bouncer 12 $+ %bouncer.server ha cerrado la conexión...
}
sockclose bouncernick
}
on 1:SOCKCLOSE:bouncernickt:{
if ($window(@bouncer).state == normal) || ($window(@bouncer).state == minimized) {
echo @bouncer 1El cliente ha cerrado la conexión...
}
sockclose bouncerconnect
}
on 1:CLOSE:@bouncer: bouncer.cierra
menu @bouncer {
sclick { }
reiniciar bouncer: bouncer
-
puerto local ( %bouncer.local ): bouncer.local
server ( %bouncer.server ): bouncer.server
puerto IRC ( %bouncer.puerto ): bouncer.puerto
-
quit usuario: bouncer.quit
-
cerrar bouncer:{ close -c@ @bouncer | bouncer.cierra }
}
alias bouncer.local {
set %bouncer.local $$?="Puerto local a abrir? (Actual: %bouncer.local $+ )" | bouncer
}
alias bouncer.server {
set %bouncer.server $$?="Servidor IRC a redireccionar las conexiones? (Actual: %bouncer.server $+ )"
bouncer
}
alias bouncer.puerto {
set %bouncer.puerto $$?="Puerto por el cual acceder a %bouncer.server $+ ? (Actual: %bouncer.puerto $+ )"
bouncer
}
alias bouncer.cierra {
if ($sock(bouncerconnect).status == active) {
sockwrite -n bouncerconnect quit :Usando un bouncer creado por [SaRRiO] - http://socketsmirc.cjb.net
}
if ($sock(bouncernick).status == active) sockclose bouncernick
echo -s 3BOUNCER CERRADO
}
alias bouncer.quit {
if ($sock(bouncerconnect).status == active) {
sockwrite -n bouncerconnect quit : $+ $$?="Mensaje de salida del IRC?"
sockclose bouncer*
echo @bouncer 6Has cerrado la conexión. Reinicia el bouncer si lo deseas.
}
}
Volver a la página principal