Bot = "RangeMaster" function Main() end function NewUserConnected(user) Blocked(user) end function OpConnected(user,data) Blocked(user) end function Blocked(user) local s,e,range1,range2,range3,range4 = strfind(user.sIP,"(%d+).(%d+).(%d+).(%d+)") --SendToAll(Bot,range1.." found to "..range2.." then to "..range3.." and finally "..range4) local handle = openfile("RangeMaster/Range.dat","r") line = read(handle) while line do if (line == nil) then break elseif strfind(line, "$"..range1.."$",1,1) then --SendToAll(Bot,line.." was found with nick: "..user.sName) local s,e,rangerS,therest = strfind(line,"(%S+)$(.*)") --SendToAll(Bot,rangerS.." then "..therest) local s,e,ipa1,ipb1,ipc1,ipd1,ipa2,ipb2,ipc2,ipd2 = strfind(line,"(%d+).(%d+).(%d+).(%d+)|(%d+).(%d+).(%d+).(%d+)") --SendToAll(Bot,ipa1..ipb1..ipc1..ipd1..ipa2..ipb2..ipc2..ipd2) if range1 < ipa1 then return 0 elseif range1 > ipa2 then return 0 elseif range1 > ipa1 and range1 < ipa2 then SendToAll(Bot,"Banning: "..user.sName.." for bad ip: "..user.sIP) user:Ban() else if range2 < ipb1 then return 0 elseif range2 > ipb2 then return 0 elseif range2 > ipb1 and range1 <= ipb2 then SendToAll(Bot,"Banning: "..user.sName.." for bad ip: "..user.sIP) user:Ban() else if range3 < ipc1 then return 0 elseif range3 > ipc2 then return 0 elseif range3 > ipc1 and range1 < ipc2 then SendToAll(Bot,"Banning: "..user.sName.." for bad ip: "..user.sIP) user:Ban() else if range4 < ipd1 then return 0 elseif range4 > ipd2 then return 0 elseif range4 > ipd1 and range4 < ipd2 then SendToAll(Bot,"Banning: "..user.sName.." for bad ip: "..user.sIP) user:Ban() else return 0 end end end end end line = read(handle) end end