Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;Script by Dragone2 - Blacklist per IP/Host
- alias -l raiseerror {
- if (!$line($active,0)) { linesep -a }
- echo $colour(info) -a $1-
- linesep -a
- halt
- }
- alias split {
- if (($1 == -c) && ($0 < 2)) || (($1 != -c) && ($0 < 3)) { raiseerror * /split: Insufficient parameters }
- var %c, %g, %i = 1, %name = $iif($1 == -c,$2,$v1)
- if ($1 == -c) { var %c = $true }
- .alias %name $+ 0
- while ($isalias(%name $+ %i)) {
- .alias %name $+ %i
- %g = %i + 1
- while ($isalias($+(%name,%i,-,%g))) {
- .alias $+(%name,%i,-,%g)
- inc %g
- }
- .alias $+(%name,%i,-)
- inc %i
- }
- %i = %i - 1
- while (%i) {
- .alias $+(%name,-,%i)
- dec %i
- }
- if (!%c) {
- %i = 1
- tokenize 13 $replace($3-,$2,$cr)
- while ($eval($ $+ %i,2) != $null) {
- if (%i < $0) {
- %g = %i + 1
- while ($eval($ $+ %g,2) != $null) {
- .alias $+(%name,%i,-,%g) return $eval($+($,%i,-,%g),2)
- inc %g
- }
- }
- .alias $+(%name,%i) return $eval($ $+ %i,2)
- .alias $+(%name,%i,-) return $eval($+($,%i,-),2)
- inc %i
- }
- %i = %i - 1
- .alias %name $+ 0 return %i
- while (%i) {
- inc %c
- .alias $+(%name,-,%c) return $eval($ $+ %i,2)
- dec %i
- }
- }
- }
- ;-server- *** Notice -- Client connecting on port PORTA: NICK (IDENT@HOST)
- ;Si inizia a contare da *** (compreso)
- ;Testato con UnrealIRCd 3.2.10.4
- on *:SNOTICE:* Client connecting on port*: {
- if ($me !isin $1-) {
- var %riga 1
- set %controllariga $read(blacklist-ip.txt, n, %riga)
- ;%controllariga = 192.168.1.1 o HOST
- while (%controllariga != $null) {
- ;$9 = NICK
- ;$10 = (IDENT@HOST)
- ;Quindi /split n @ (IDENT@HOST) o meglio /split n @ $10 restituirà HOST) e per cui va usato $left
- /split n @ $10
- if (%controllariga == $left($n2,-1)) {
- ;msg #prova gline *@ $+ $left($n2,-1) 1d Utente bannato da questo Network.
- /gline *@ $+ $left($n2,-1) 1d Utente bannato da questo Network.
- }
- inc %riga
- set %controllariga $read(blacklist-ip.txt, n, %riga)
- }
- }
- }
- ;-server- *** Notice -- Client connecting at SERVER: NICK (IDENT@HOST)
- ;Si inizia a contare da *** compreso
- ;Testato con UnrealIRCd 3.2.10.4
- on *:SNOTICE:*Client connecting at *: {
- if ($me !isin $1-) {
- var %riga 1
- set %controllariga $read(blacklist-ip.txt, n, %riga)
- while (%controllariga != $null) {
- ;$8 = NICK
- ;$9 = (IDENT@HOST)
- ;Quindi /split n @ (IDENT@HOST) o meglio /split n @ $9 restituirà HOST) e per cui va usato $left
- /split n @ $9
- if (%controllariga == $left($n2,-1)) {
- ;msg #prova gline *@ $+ $left($n2,-1) 1d Utente bannato da questo Network.
- /gline *@ $+ $left($n2,-1) 1d Utente bannato da questo Network.
- }
- inc %riga
- set %controllariga $read(blacklist-ip.txt, n, %riga)
- }
- }
- }
- ;------------------------- UnrealIRCd 4.X.X ---------------------------
- ;-server- *** Notice -- Client connecting: NICK (IDENT@HOST) [IP]
- ;Si inizia a contare da -- (compreso)
- ;Testato con UnrealIRCd 4.0.5
- on *:SNOTICE:*Client connecting*: {
- if ($me !isin $1-) {
- var %riga 1
- set %controllariga $read(blacklist-ip.txt, n, %riga)
- while (%controllariga != $null) {
- ;$4 = NICK
- ;$5 = (IDENT@HOST)
- ;Quindi /split n @ (IDENT@HOST) o meglio /split n @ $5 restituirà HOST) e per cui va usato $left
- /split n @ $5
- if (%controllariga == $left($n2,-1)) {
- ;msg #prova gline *@ $+ $left($n2,-1) 1d Utente bannato da questo Network.
- /gline *@ $+ $left($n2,-1) 1d Utente bannato da questo Network.
- }
- inc %riga
- set %controllariga $read(blacklist-ip.txt, n, %riga)
- }
- }
- }
- on *:TEXT:!blacklist*:#: {
- if ($nick == %proprietario. [ $+ [ $network ] ]) {
- if ($2 == add) && ($3 != $null) { write blacklist-ip.txt $3 | msg # $3 inserito nella BlackList. | halt }
- elseif ($2 == add) && ($3 == $null) { msg # Errore: inserisci un IP/Host da mettere in BlackList. | halt }
- if ($2 == del) && ($3 != $null) { write -dl $+ $3 blacklist-ip.txt | msg # La voce numero $3 è stata rimossa dalla BlackList. | halt }
- elseif ($2 == del) && ($3 == $null) { msg # Errore: inserisci un IP/Host da rimuovere dalla BlackList. | halt }
- if ($2 == list) {
- msg # La BlackList è così composta:
- var %riga 1
- set %leggiriga $read(blacklist-ip.txt, n, %riga)
- while (%leggiriga != $null) {
- msg # %riga $+ ) %leggiriga
- inc %riga 1
- set %leggiriga $read(blacklist-ip.txt, n, %riga)
- }
- msg # Fine della lista.
- halt
- }
- if ($2 == help) {
- msg # [BlackList] - 4Comandi disponibili - [BlackList]
- msg # !blacklist add <IP/Host> - Aggiunge un IP/Host nella BlackList, verrà glineato dal Network per hostname/IP se il bot è IRCOp.
- msg # !blacklist del <numero> - Rimuove un nickname dalla BlackList sfruttando il numero.
- msg # !blacklist list - Elenca la lista completa dei nicknames presenti nella BlackList.
- halt
- }
- }
- else { msg # Errore: non sei autorizzato ad utilizzare questo comando. }
- }
- ;on *:NICK: {
- ; if ($newnick != $me) {
- ; var %riga 1
- ; set %controllariga $read(blacklist.txt, n, %riga)
- ; while (%controllariga != $null) {
- ; if (%controllariga == $newnick) {
- ; /gline $newnick 1d Utente bannato da questo Network.
- ; }
- ; inc %riga
- ; set %controllariga $read(blacklist.txt, n, %riga)
- ; }
- ; }
- ;}
Advertisement
Add Comment
Please, Sign In to add comment