Здравствуйте, гость ( Вход | Регистрация )
Дата поста: | В теме: | За сообщение: | Спасибо сказали: | ||
---|---|---|---|---|---|
26.5.2011, 21:26 |
Определение подсети по ip |
Нужна небольшая помощь, есть небольшой скрипт со птоки хотелось бы переделать под Rushub... Функционал просто по ip выставляет тег провайдерский Сам скрипт Раскрывающийся текст Код -- This script is converted with PtokaX LUA API Converter v0.9 at 08/07/08 17:10:05 -- данный скрипт добавляет в описание пользователей название их сети, профиль и IP. -- by e-ploko API2 Minutes = 1 tProfileTag = { [1] = "[Master]", [2] = "[Moderator]", [3] = "[Operator]", [4] = "[VIP]", [5] = "[Reg]", [0] = "[SUAdmin]", [-1] = "[Unreg]" } -- список подсетей и описания, вставляемое в тэг. RangeDesc = { [1]="10.0.0.0-10.0.0.255-[ISP]", [2]="10.135.0.0-10.135.255.255-[Eth_2_Микрор-н]", [3]="10.132.0.0-10.132.255.255-[Eth_3_Бутырки]", [4]="10.142.0.0-10.142.255.255-[Eth_Агропром]", [5]="10.146.0.0-10.146.255.255-[Eth_ишневая]", [6]="10.156.0.0-10.156.255.255-[Eth_орошиловка]", [7]="10.150.0.0-10.150.255.255-[Eth_ысоковольтная]", [8]="10.157.0.0-10.157.255.255-[Eth_Грибоедова]", [9]="10.147.0.0-10.147.255.255-[Eth_Дягилево]", [10]="10.134.0.0-10.134.255.255-[Eth_Кальное]", [11]="10.137.0.0-10.137.255.255-[Eth_Керамзавод]", [12]="10.138.0.0-10.138.255.255-[Eth_Мехзавод]", [13]="10.136.0.0-10.136.255.255-[Eth_Михшоссе_2]", [14]="10.133.0.0-10.133.255.255-[Eth_Михшоссе]", [15]="10.160.0.0-10.160.255.255-[Eth_Новоселов_33]", [16]="10.129.0.0-10.129.255.255-[Eth_Окт.гор-к]", [17]="10.153.0.0-10.153.255.255-[Eth_Павлова]", [18]="10.130.0.0-10.130.255.255-[Eth_Полевая]", [19]="10.144.0.0-10.144.255.255-[Eth_Приокский]", [20]="10.128.0.0-10.128.255.255-[Eth_Радищева]", [21]="10.141.0.0-10.141.255.255-[Eth_Соколовка]", [22]="10.145.0.0-10.145.255.255-[Eth_Солнечная]", [23]="10.148.0.0-10.148.255.255-[Eth_Чкалова]", [24]="10.151.0.0-10.151.255.255-[Eth_Шевченко]", [25]="10.131.0.0-10.131.255.255-[Eth_Шлаковый]", [26]="10.152.0.0-10.152.255.255-[Eth_Электрозаводская]" -- и т.д. } OnStartup = function() tmr = TmrMan.AddTimer(5000 * 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+([^$]*)$ $([^$]*)$([^$]*)$([^$]+)") local descript = tProfileTag[user.iProfile].." "..descript Core.SendToAll("$MyINFO $ALL "..name.." "..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 |
мамин_парень | ||
|
Сейчас: 23.11.2024, 0:08 |