PtokaX forum

Archive => Archived 4.0 boards => Help with Lua 4 scripts => Topic started by: binni on 21 November, 2003, 09:52:48

Title: IP bot - a problem
Post by: binni on 21 November, 2003, 09:52:48
I have a problem about my ip bot. it isn?t working. I think that he is not written right. can some one fix it for me ?

bot:

-- Dreift me? GPL leyfinu (sj? //www.gnu.org) ?essi scrip er ? bo?i dc.ljos.net

function isIcelandicIP(ipstrengur)
   theIP = curUser.sIP
   _, _, b1, b2, b3, b4 = strfind(theIP,"(%d+).(%d+).(%d+).(%d+)")
   b1 = tonumber(b1)
   b2 = tonumber(b2)
   b3 = tonumber(b3)
   b4 = tonumber(b4)
   skilagildi = 0
   -- Landss?minn
   if b1 == 157 and b2 == 157 then skilagildi =  1
   elseif b1 == 192 and b2 == 147 and b3 == 34 then skilagildi =  1
   elseif b1 == 194 and b2 == 105 and b3 > 223 then skilagildi =  1
   elseif b1 == 212 and b2 == 30 and b3 > 191 and b3 < 224 then skilagildi =  1
   elseif b1 == 213 and b2 == 167 and b3 == 128 then skilagildi =  1
   -- OgVodafone
   elseif b1 == 217 and b2 == 9 and b3 > 127 and b3 < 144 then skilagildi =  2
   elseif b1 == 213 and b2 == 176 and b3 > 127 and b3 < 160 then skilagildi =  2
   elseif b1 == 213 and b2 == 213 and b3 > 127 and b3 < 160 then skilagildi =  2
   elseif b1 == 194 and b2 == 144 then skilagildi =  2
   elseif b1 == 193 and b2 == 4 then skilagildi =  2
   -- Vortex (Hringi?an)
   elseif b1 == 213 and b2 == 190 and b3 > 95 and b3 < 128 then skilagildi =  3
   -- L?na.net
   elseif b1 == 213 and b2 == 220 and b3 == 64 then skilagildi =  4
   elseif b1 == 62 and b2 == 145 and b3 > 127 and b3 < 160 then skilagildi =  4
   elseif b1 == 81 and b2 == 15 then skilagildi = 4
   -- MargMi?lun Internet
   elseif b1 == 217 and b2 == 151 and b3 > 159 and b3 < 192 then skilagildi =  5
   -- Snerpa
   elseif b1 == 193 and b2 == 109 and b3 > 15 and b3 < 32 then skilagildi =  6
   -- Ranns?knar/H?sk?laneti?
   elseif b1 == 130 and b2 == 208 then skilagildi =  7
   -- Decode Genetics
   elseif b1 == 212 and b2 == 126 and b3 > 223 then skilagildi =  8
   -- Ess?net
   elseif b1 == 213 and b2 == 167 and b3 == 154 then skilagildi = 9
   -- Netsamskipti
   elseif b1 == 10 and b2 == 101 and b3 == 27 then skilagildi = 10
   elseif b1 == 10 and b2 == 101 and b3 == 45 then skilagildi = 10
   elseif b1 == 194 and b2 == 105 and b3 == 244 then skilagildi = 10
   end
   -- Annars ?tlensk
   if (skilagildi == 0) then
   curUser:SendPM(Bot,"Your IP isn?t From Iceland :S.... En ef svo er Tala ?? vi? hemarius@visir.is")
   curUser:Disconnect()
   end
   if(skilagildi == 1) then curUser:SendData("Wellcome user of Lands?mans :D")
   elseif(skilagildi == 2) then curUser:SendData("Wellcome user of Vodafone :D")
   elseif(skilagildi == 3) then curUser:SendData("Wellcome user of Hringi?unnar :D")
   elseif(skilagildi == 4) then curUser:SendData("Wellcome user of L?nu.Nets :D")
   elseif(skilagildi == 5) then curUser:SendData("Wellcome user of MargMi?lunar :D")
   elseif(skilagildi == 6) then curUser:SendData("Wellcome user of Snerpu :D")
   elseif(skilagildi == 7) then curUser:SendData("Wellcome user ofi H?sk?la/Ranns?knar netsins :D")
   elseif(skilagildi == 8) then curUser:SendData("Wellcome user of nets ?slenskrar Erf?agreiningar :D")   
   elseif(skilagildi == 9) then curUser:SendData("Wellcome user of Ess?nets :D (Ess?nets?)")
   elseif(skilagildi == 10) then curUser:SendData("Wellcome user of Netsamskipta :D") end)
Title:
Post by: Leo on 21 November, 2003, 11:53:12
Better this script, her you can insert your ip-ranges :
------------------------------------------------------------------------------ IP Ranger v1.0
-- from VBScript translated by ptaczek, Feb 28, 2003

Owner=""
BotName = ""
redirAddr = ""

IPS = {
   "BBB-195.54.96.0-195.54.127.255",
   "BBB-195.54.96.0-217.199.117.255",
   "BBB-213.112.0.0-213.112.255.255",
   "BBB-194.236.19.0-194.236.19.255",
   "BBB-213.113.0.0-213.113.255.255",
   "BBB-213.112.0.0-213.115.255.255",
   "LOC-127.0.0.0-127.0.255.255"
}

function Main()
   frmHub:RegBot(BotName)
end

function NewUserConnected(user)
         if not (user.iProfile==0 or user.iProfile==1) then --- if you don't wanna check ops and masters ---
   local i = CheckIP(user.sIP)
   if not i ~= nil then
      user:SendData("$ForceMove "..redirAddr.."|")
      user:SendData(BotName,"Your IP isn?t From Iceland :S.... En ef svo er Tala ?a vi? hemarius@visir.is")
      user:Disconnect()
      SendPmToNick( Owner, BotName, "Redirecting "..user.sName.." ("..user.sIP..") to "..redirAddr)
   end
end

function CheckIP(sIP)
   local s,e
   ip = ComputeIP(sIP)
   for i=1, getn(IPS) do
      _,_,s,e = strfind(IPS, "%S+-(%S+)-(%S+)")
      s = ComputeIP(s)
      e = ComputeIP(e)
      if ip>=s and ip<=e then
         return i
      end
   end
   return nil
end

function ComputeIP(sIP)
   local a,b,c,d
   _,_,a,b,c,d = strfind(sIP, "(%d+).(%d+).(%d+).(%d+)")
   return a*16777216 + b*65536 + c*256 + d
end

---------------------------------------------------------------------

This Script work fine .
Title: thanks
Post by: binni on 21 November, 2003, 16:53:17
thanks a lot for this.   ;)