Boa tarde, o meu assunto é o seguinte, tenho um servidor de Chat em meu site e há alguns dias estão travando meu servidor, não sei se com outro servidor a conectar se com um Bot com CONEX.
Acontece que no meu servidor aparece apenas "ircx(depois numeros e letras que variam):CONEX"
e mais uma segunda mensagem que diz " /sockrite:(mais numeros e letras iguais às de cima) a espera excederia 16384 bytes (linha 151,freechat.mrc)
Preciso impedir que ele entre e bloqueie o servidor, PARTE do ficheiro é este, o que me parece ter que ser modificado para não entrar:
on *:SOCKLISTEN:local.2:{
var %sock $+(ircx.,$r(a,z),$r(1111,9999),$r(a,z),$r(1,999999),$r(A,Z),$r(11,99),$r(A,Z))
sockaccept %sock
if %prot == on {
if !%ipflood. [ $+ [ $sock(%sock).ip ] ] {
set -u40 %ipflood. [ $+ [ $sock(%sock).ip ] ] 1
}
elseif %ipflood. [ $+ [ $sock(%sock).ip ] ] > 5 {
sockclose %sock
halt
}
else {
inc %ipflood. [ $+ [ $sock(%sock).ip ] ] 1
}
}
}
alias offjz return $iif(r isin $1,1,$iif(j isin $1,3,$iif(z isin $1,2,0)))
on *:sockread:ircx.*: {
var %r
sockread %r
tokenize 32 %r
echo -s $bc.decode($sockname) : $bc.decode($1-)
if (CONEX == $1) {
var %n = 1, %room = $hget(0)
while (%n <= %room) {
if (($+($chr(37),$chr(35)) isin $hget(%n)) && (s !isincs $hget($hget(%n),modes)) && (p !isin $hget($hget(%n),modes))) {
Pergunta
CarlaAlexa
Boa tarde, o meu assunto é o seguinte, tenho um servidor de Chat em meu site e há alguns dias estão travando meu servidor, não sei se com outro servidor a conectar se com um Bot com CONEX.
Acontece que no meu servidor aparece apenas "ircx(depois numeros e letras que variam):CONEX"
e mais uma segunda mensagem que diz " /sockrite:(mais numeros e letras iguais às de cima) a espera excederia 16384 bytes (linha 151,freechat.mrc)
Preciso impedir que ele entre e bloqueie o servidor, PARTE do ficheiro é este, o que me parece ter que ser modificado para não entrar:
on *:SOCKLISTEN:local.2:{
var %sock $+(ircx.,$r(a,z),$r(1111,9999),$r(a,z),$r(1,999999),$r(A,Z),$r(11,99),$r(A,Z))
sockaccept %sock
if %prot == on {
if !%ipflood. [ $+ [ $sock(%sock).ip ] ] {
set -u40 %ipflood. [ $+ [ $sock(%sock).ip ] ] 1
}
elseif %ipflood. [ $+ [ $sock(%sock).ip ] ] > 5 {
sockclose %sock
halt
}
else {
inc %ipflood. [ $+ [ $sock(%sock).ip ] ] 1
}
}
}
alias offjz return $iif(r isin $1,1,$iif(j isin $1,3,$iif(z isin $1,2,0)))
on *:sockread:ircx.*: {
var %r
sockread %r
tokenize 32 %r
echo -s $bc.decode($sockname) : $bc.decode($1-)
if (CONEX == $1) {
var %n = 1, %room = $hget(0)
while (%n <= %room) {
if (($+($chr(37),$chr(35)) isin $hget(%n)) && (s !isincs $hget($hget(%n),modes)) && (p !isin $hget($hget(%n),modes))) {
sockwrite -tn $sockname l $hget(%n) $calc($sock($+(principal.*.,$hget(%n)),0) + $iif(r isin $hget($hget(%n),modes),1,0)) $hget($hget(%n),cat) $hget($hget(%n),lang) $offjz($hget($hget(%n),modes)) $hget($hget(%n),topic)
}
inc %n
}
sockwrite -n $sockname 0
}
if (bot == $1) {
sockwrite -n $sockname ok
var %a $+(principal.,$r(a,z),$r(1111,9999),$r(a,z),$r(1,999999),$r(A,Z),$r(11,99),$r(A,Z))
sockrename $sockname %a
hadd -m %a bot 1
hadd -m %a gate $+($r(1,999),$r(A,Z),$r(11,99),$r(A,Z),$r(111,999),$r(A,Z),$r(11,99),$r(A,Z),$r(11,99),@,$serv)
}
elseif AUTH GateKeeper I == $1-3 && :GKSSP* iswm $4 {
sockwrite -tn $sockname AUTH GateKeeper * $rand(111,999) $+ $rand(A,Z) $+ $rand(11,99) $+ $rand(A,Z) $+ $rand(111,999) $+ $rand(A,Z) $+ $rand(11,99) $+ $rand(A,Z) $+ $rand(11,99) $+ @GuestGate 0
}
elseif NICK == $1 {
sockwrite -tn $sockname $+(:,$serv) 001 Server :Bienvenue sur $serv
}
elseif FINDS == $1 {
if $hget($2) { sockwrite -tn $sockname $+(:,$serv) 613 Server : $+ %ip 6668 }
else { sockwrite -tn $sockname $+(:,$serv) 702 Server :Salle inexistante }
}
elseif CREATE == $1 && $+($chr(37),$chr(35),*) iswm $3 && $8 {
var %flood.limit 4
if !%createflood {
set -ul0 %createflood 1
}
elseif %createflood > %flood.limit {
sockclose $sockname
unset %createflood
halt
}
else {
inc %createflood 1
}
if $hget($3) { sockwrite -tn $sockname $+(:,$serv) 705 Server : $+ %ip 6668 | halt }
else {
if $checkroom($3) == oui && $len($3) > 2 && $len($3) < 70 {
hmake $3 10 | hadd $3 cat $2 | hadd $3 topic $remove($4,$chr(37)) | hadd $3 onjoin $5 | hadd $3 lang $6 | hadd $3 owner $8 | hadd $3 host $+($r(a,z),$r(1,999999),$r(A,Z),$r(11,99),$r(A,Z)) | hadd $3 modes +ntulc | hadd $3 limit 50
set $+($chr(37),create,$3) on
sockwrite -tn $sockname $+(:,$serv) 613 Server : $+ %ip 6668
}
else { sockwrite -tn $sockname $+(:,$serv) 405 Server :Unable to join }
}
}
}
on *:socklisten:local.1:{
var %sock $+(principal.,$r(a,z),$r(1111,9999),$r(a,z),$r(1,999999),$r(A,Z),$r(11,99),$r(A,Z))
sockaccept %sock
}
alias _isop if ((A == $hget($1,ui2)) || (S == $hget($1,ui2)) || (G == $hget($1,ui2))) return 1 | return 0
alias _fb sockwrite -n $sockname : $+ $hget($sname($sockname),ident) PRIVMSG $hget($sname($sockname),room) : $+ $chr(1) $+ ACTION $1- $+ $chr(1)
NOTA-> se eu colocar OFF onde está ON aqui --> ninguém entra: ---> on *:sockread:ircx.*: {
Agradecia muito a ajuda
Carla
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados