-- данный скрипт добавляет в описание пользователей название их сети, профиль и IP. -- by e-ploko API2 Minutes = 1 tProfileTag = { [1] = "[О]", [3] = "[Р]", [2] = "[В]", [0] = "[А]", [-1] = "[?]" } -- список подсетей и описания, вставляемое в тэг. RangeDesc = { "127.0.0.1-127.0.0.255-[Дом]", "192.168.0.1-192.168.0.255-[Локал]", "10.184.0.1-10.184.255.255-[Нагорный]", "10.56.0.1-10.56.255.255-[Бирюлево Западное]", "10.57.0.1-10.57.255.255-[Бирюлево Восточное]", "10.158.0.1-10.158.255.255-[Солнцево]", "10.160.0.1-10.160.255.255-[Царицыно]", "10.212.0.1-10.212.255.255-[Центральное Чертаново]", "10.218.0.1-10.218.255.255-[Южное Чертаново]", "10.228.0.1-10.228.255.255-[Северное Чертаново]", "10.233.0.1-10.233.255.255-[Москворечье Сабурово]", "10.241.0.1-10.241.255.255-[Нагатино Садовники]", "10.247.0.1-10.247.255.255-[Нижегородский]", "10.48.0.1-10.48.255.255-[Центральное Чертаново]", "10.59.0.1-10.59.255.255-[Северное Бутово]", "10.243.0.1-10.243.255.255-[Нагатинский]", "10.173.0.1-10.173.255.255-[Нагорный]", "10.87.0.1-10.87.255.255-[Медведково Северное]", "10.119.0.1-10.119.255.255-[Теплый Стан]", "10.152.0.1-10.153.255.255-[Раменки]", "10.197.0.1-10.197.255.255-[Черемушки]", "10.191.0.1-10.191.255.255-[Ростокино]", "10.15.0.1-10.15.255.255-[Тверской]", "10.208.0.1-10.208.255.255-[Мещанский]", "10.137.0.1-10.137.255.255-[Теплый Стан]", "10.186.0.1-10.186.255.255-[Алтуфьево]", "10.200.0.1-10.200.255.255-[Печатники]", "10.81.0.1-10.81.255.255-[Останкино]", "10.72.0.1-10.72.255.255-[Гольяново]", "10.127.0.1-10.127.255.255-[Волжский]", -- и т.д. } OnStartup = function() tmr = TmrMan.AddTimer(10000 * Minutes) end OnTimer = function(tmr) for id,user in pairs(Core.GetOnlineUsers(true)) do Userover = user if user.sMyInfoString ~= nil then local descript,userip = nil,calcip(Userover.sIP) if userip ~= 0 then for index,descIP in pairs(RangeDesc) do local _,_,startRange,endRange,RangeDescript = string.find(descIP, "(.*)-(.*)-(.*)") startRange = calcip(startRange) endRange = calcip(endRange) if userip>=startRange and userip<=endRange then descript = RangeDescript end end if descript == nil then descript = "[Нет в базе]" end end local s,e,name,desc,speed,email,share = string.find(user.sMyInfoString, "$MyINFO $ALL (%S+)%s+([^$]*)$ $([^$]*)$([^$]*)$([^$]+)") Core.SendToAll("$MyINFO $ALL "..name.." "..tProfileTag[user.iProfile].." "..descript.." "..desc.."$ $"..speed.."$"..email.."$"..share.."$") end end end -- функция РАСЧЁТА адреса IP function calcip(ipcalc) local _,_,a,b,c,d = string.find(ipcalc, "(%d+).(%d+).(%d+).(%d+)") local calc = 0 if (tonumber(a) and tonumber(b) and tonumber(c) and tonumber(d)) then calc = a*16777216 + b*65536 + c*256 + d return calc else return 0 end end --end