Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Запросы скриптов для RusHub'а _ Определение подсети по ip

Автор: LEXSOR 26.5.2011, 21:26

Нужна небольшая помощь, есть небольшой скрипт со птоки хотелось бы переделать под 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

Автор: ShadoWx 5.8.2011, 21:42

поддерживаю, переведите пожалуйста, уж очень хочется на хабе разделить интернет и локальных пользователей приставками ...

Автор: Alexey 6.8.2011, 9:03

http://mydc.ru/topic4930.html