myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
 
Ответить в данную темуНачать новую тему

> Скрипт рассылки сообщений

Теги
Нет тегов для показа
MaxFox
сообщение 12.1.2012, 16:57
Сообщение #1


Продвинутый участник
****

Группа: Пользователи
Сообщений: 120
Регистрация: 25.5.2009
Пользователь №: 3 432
Спасибо сказали: 20 раз




Всем привет. Хочу иметь скрипт рассылающий сообщения юзерам 1 раз при конекте на хаб, но если только этот юзер принадлежит определенному диапазону IP адресов. ДИапазоны чтобы можно было удобно добавлять или изменять.
Посмотрел, что имеется по данным темам... частично подходит OneSend, частично SendToRanges

Поковырялся сам, вот что получилось... но не выходит пока каменный цветок, прошу помощи =)

Раскрывающийся текст

Код
path = debug.getinfo(1).source:match("^@?(.+[/\\]).-$"):gsub("\\","/")
Ranges = path.."raddilka.txt"
sMsg = "Текст для юзеров"
hFileName = "rasslka.dbs"

function string.InRange(ip,rnum)
    local iIP = ip:iptonumber()
    for i,v in ipairs(tRanges[rnum]) do
        if v[1] <= iIP and iIP <= v[2] then
            return true
        end
    end
end

function string.iptonumber(ip)
    local i1, i2, i3, i4 = ip:match("^(%d+)%.(%d+)%.(%d+)%.(%d+)$")
    if i1 then
        local r = i1*16777216+i2*65536+i3*256+i4
        if r < 0 then error(ip) end
        return r
    end
end

function LoadRanges()
    local f = io.open(Ranges,"r")
    if f then
        tRanges,tRangeNames = {},{}
        local rnum = 0
        for line in f:lines() do
            local ip1,ip2 = line:match("^(%d+%.%d+%.%d+%.%d+)%-(%d+%.%d+%.%d+%.%d+)")
            if ip1 and ip2 then
                if rnum > 0 then
                    table.insert(tRanges[rnum],{ip1:iptonumber(),ip2:iptonumber()})
                end
            else    
                local rname = line:match("^%[(.+)%]")
                if rname then
                    rnum = rnum+1
                    tRanges[rnum] = {}
                    tRangeNames[rnum] = rname
                end
            end
        end
        f:close()
    end
end

function OnStartup()
    hFileName = Core.GetPtokaXPath().."scripts/"..hFileName
    bot = SetMan.GetString(21)
    assert(LoadRanges(),"Не удалось загрузить список диапазонов")
    if loadfile(hFileName) then
        dofile(hFileName)
    end
    if not tIpBase then tIpBase = {} end
end

function UserConnected(tUser)
    if tUser.sIP:InRange(rnum) then
        if not tIpBase[tUser.sIP] then
            Core.SendPmToUser(tUser, sBot, sMsg)
            tIpBase[tUser.sIP] = 1
            SaveToFile(tIpBase, "tIpBase", hFileName)
        end
    end
end

function SaveToFile(tTable, sTableName, sFile)
  local f = io.open(sFile, "r+")
  if f then
    Serialize(tTable, sTableName, f)
    f:flush()
    f:close()
  end
end

function Serialize(tTable, sTableName, hFile, sTab)
  sTab=sTab or ""
  hFile:write(sTab..sTableName.." = {\n")
  for i,v in pairs(tTable) do
    local sKey=(type(i)=="string") and string.format("[%q]",i) or string.format("[%d]",i)
    if(type(v)=="table") then Serialize(v,sKey,hFile,sTab.."\t")
    else
      local sValue=(type(value)=="string") and string.format("%q",v) or tostring(v)
      hFile:write(sTab.."\t"..sKey.." = "..sValue)
    end
    hFile:write(",\n")
  end
  hFile:write(sTab.."}")
end
RegConnected = UserConnected

Go to the top of the page
+Quote Post
MaxFox
сообщение 23.1.2012, 8:54
Сообщение #2


Продвинутый участник
****

Группа: Пользователи
Сообщений: 120
Регистрация: 25.5.2009
Пользователь №: 3 432
Спасибо сказали: 20 раз




ну что ,не подскажет никто ничего?
Go to the top of the page
+Quote Post

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No new Topic has attachmentsНерабочий скрипт ВИПа по шаре
16 Damaks 20 155 23.2.2023, 7:16 Посл. сообщение: mod
No new Topic has attachmentsMagneto - Бесплатный Скрипт Портала Обмена Dc-ссылками Для Локальной Сети
26 UserSide 41 369 27.8.2019, 11:01 Посл. сообщение: CyberGhost404
No New Posts От: Новогодний Скрипт
От темы с ID: 871
0 Евгений 3 206 15.10.2018, 21:44 Посл. сообщение: Евгений
No New Posts А бывают такой скрипт бота?
Скрипт который создает виртуалных юзеров, но с реальными шарами
5 MarkDark 8 211 26.12.2017, 10:47 Посл. сообщение: мамин_парень
No New Posts Скрипт: Бот который отвечает в лс
4 мамин_парень 7 858 11.11.2017, 5:57 Посл. сообщение: мамин_парень
No New Posts как сделать вот этот скрипт
12 мамин_парень 12 687 13.9.2017, 10:51 Посл. сообщение: dimetro
No New Posts Topic has attachmentsИщу скрипт переадресации (redirect)
Переадресация интернет-юзеров
3 AS_Com 7 264 27.8.2017, 8:05 Посл. сообщение: Ksan
No New Posts Topic has attachmentsСкрипт Thunder.lua
7 Евген76 15 366 9.8.2017, 11:48 Посл. сообщение: Ksan
No New Posts Требуется скрипт
Нужен скрипт запрета на подключение
5 Nikolaevich 9 555 20.8.2016, 19:52 Посл. сообщение: Ksan
No new ВАЖНО: Topic has attachmentsСкрипт банов для RusHub
тестим и комменьтруем
79 Wariner 105 053 28.9.2015, 13:34 Посл. сообщение: NeirRon
No New Posts Скрипт загрузки файла
1 FreeNas 6 458 21.7.2015, 10:58 Посл. сообщение: HackFresse
No new Как вызвать bash скрипт из Lua
14 Iskandark 17 411 3.3.2015, 12:42 Посл. сообщение: Iskandark
No new Topic has attachmentsНовогодний Скрипт
API2
22 Tsd 35 785 12.12.2014, 16:28 Посл. сообщение: Tsd
No New Posts Скрипт запрета видеть чат
запрет видеть чат
2 dimetro 7 334 5.12.2014, 17:37 Посл. сообщение: dimetro
No New Posts Topic has attachmentsпеределать скрипт kinozal.tv
6 BOKOREZ 13 068 30.10.2014, 18:29 Посл. сообщение: Dani_Filth

 



RSS Сейчас: 23.12.2024, 12:16