Автор: Jackson 25.5.2009, 23:02
Всем привет!
суть дела такова:
нужно сделать что-бы пользователи из группы 2, ip которых записан в tAllowedRanges, могли соединятся с пользователями из группы 1 и группы 2. но при этом пользователи из группы 1 могли соединятся только с группой 1.
*группа 1 это все остальные пользователи, чьи адреса не записаны в tAllowedRanges
Код
sBot = SetMan.GetString(21)
tAllowedRanges = {
["10.0.1.13"] = "10.0.1.13",
["10.0.2.78"] = "10.0.2.78",
}
tTemp = {}
function OnStartup()
for a,b in pairs(tAllowedRanges) do
tTemp[(computeIP(a))] = computeIP(b)
end
end
function ConnectToMeArrival(tUser, sData)
if checkIP(tUser.sIP) then
Core.SendToUser(tUser, "<"..sBot.."> *** сообщение для группы 1 !")
return
end
if (checkIP(tUser.sIP) == false) then
Core.SendToUser(tUser, "<"..sBot.."> *** сообщение для группы 2 !")
return
end
end
function checkIP(sIP)
local iIP = computeIP(sIP)
if iIP then
for startRange,endRange in pairs(tTemp) do
if (iIP >= startRange)and (iIP <= endRange) then
return false
end
end
end
return true
end
function computeIP(sIP)
local _,_,a,b,c,d = string.find(sIP, "(%d+).(%d+).(%d+).(%d+)")
return a*16777216 + b*65536 + c*256 + d
end
RevConnectToMeArrival = ConnectToMeArrival
MultiConnectToMeArrival = ConnectToMeArrival
OpConnected = UserConnected
p.s. не предлагайте пользоватся скриптом разделения сетей, мне нужно разобраться и сделать на базе этого.
API2помогите всё это довести до ума, пожалуйста!