--//RangeBlaster v2.07 by Phatty --//IP Keys written by John, and Phatty Bot = "RangeBlaster" Ranges = {} function Main() frmHub:RegBot(Bot) LoadIps() end function LoadIps() local tmp = 0 local handle = openfile("RangeBlaster/Ranges.dat","r") line = read(handle) while line do tmp = tmp + 1 local s,e,ipr1,ipr2 = strfind(line,"(%S+)|(%S+)") if ipr2 == nil then SendToAll(Bot,"Error on line "..line) end local s,e,ipa1,ipb1,ipc1,ipd1 = strfind(ipr1, "(%d*).(%d*).(%d*).(%d*)") local s,e,ipa2,ipb2,ipc2,ipd2 = strfind(ipr2, "(%d*).(%d*).(%d*).(%d*)") si1 = CheckNumber(ipa1)..CheckNumber(ipb1)..CheckNumber(ipc1)..CheckNumber(ipd1) si2 = CheckNumber(ipa2)..CheckNumber(ipb2)..CheckNumber(ipc2)..CheckNumber(ipd2) Ranges[si1] = si2 line = read(handle) end SendToAll(Bot,"Successfully loaded "..tmp) end function Blocked(userip) local s,e,range1,range2,range3,range4 = strfind(userip,"(%d+).(%d+).(%d+).(%d+)") checker = CheckNumber(range1)..CheckNumber(range2)..CheckNumber(range3)..CheckNumber(range4) --SendToAll(Bot,"IP-Test..."..checker) for i,p in Ranges do local s,e,xstart = strfind(i, "(%d*)") local s,e,xend = strfind(p, "(%d*)") if checker > xstart and checker < xend then collectgarbage() flush() return 1 else end end end function CheckNumber(number) numbera = tonumber(number) if numbera < 10 then numbera = "00"..number elseif numbera < 100 then numbera = "0"..number else numbera = number end return numbera end function DataArrival(user,data) if strsub(data, 1, 13) == "$ValidateNick" then if Blocked(user.sIP) == 1 then user:SendData(Bot, "This hub is private, you will now be disconnected!") user:SendData(Bot, "Disconnecting...") SendPmToOps(Bot, user.sName.." - "..user.sIP.." has been blasted by "..Bot.."!") user:Disconnect() end end end