A quick and short script written to zline IPs in a specified file. The IPs must be listed in the file as one IP per line, e.g.:
1.3.4.5
1.2.3.4
1.4.5.6
5.6.3.2
6.7.8.6
etc…
Follow the instructions to use.
; To use:
;1) Type /ipban.reset
;2) Ensure you specify the right file/directory in set %ipban.ipfile "nodes.csv"
;3) Type /ipban
;4) Wait until script completes, can take a while depending on size of file.
alias -l ipban_next {
if (%ipban.pos <= %ipban.total) {
zline $+(*@,$read(%ipban.ipfile,%ipban.pos)) 1d Tor Exit Servers are not permitted on this network
inc %ipban.pos
ipban
}
else {
echo -atc info *** Zlined %ipban.total IPs from %ipban.ipfile
.unset %ipban.*
}
}
alias ipban {
set %ipban.ipfile "nodes.csv"
if ($isfile(%ipban.ipfile) == $false) { echo -atc info *** IP Ban Error: %ipban.ipfile does not exist | return }
set %ipban.total $lines(%ipban.ipfile)
if (%ipban.pos == $null) { set %ipban.pos 1 }
.timer -m 1 5 ipban_next
}
alias ipban.reset .unset %ipban.*
Let me bring to attention my use of timers over a while loop for budding scripters.
The reason is for large IP files, a while loop will freeze your script. For this reason a timer was used with a 5 millisecond delay, ensuring fast zlines but without freezing the script.
I will edit this script to auto carry out /ipban.reset upon execution, but, as of now, this isn’t required as it does its job (plus I’m short on time again!!!).
Note: to edit the zline time and message:
zline $+(*@,$read(%ipban.ipfile,%ipban.pos)) 1d Tor Exit Servers are not permitted on this network
Change:
“1d” to something you want
“Tor Exit Servers are not permitted on this network” to something you want
Leave a Reply