myDC.ru

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

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

> Редирект или отключение v1.1, v2.1.1, API2| Выбираем кого отключить, кого перенаправить, если маленькая шара

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


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

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




Название скрипта: Редирект или отключение
Версия скрипта: 1.1, 2.1.1
Версия API:API2
Автор: MaxFox

Описание скрипта: Данный скрипт позволяет редиректить или просто отключать пользователей, если их шара мала, в зависимости от того, какому сегменту сети они принадлежат. Стандартными методами хаба вы можете установить порог шары и решить глобально, что делать с теми кто не расшарил необходимого объема, просто отключать или же перенаправлять куда вы хотите.
Один минус так сказать... пингеры читают порог шары установленный стандартными методами хаба. но для меня это не принципиально. Вы можете добавить ники тех, кого не будет проверять на шару и будет пропускать на хаб в независимости от вашего ценза.

Прикрепленный файл  RedirectorDisconnect_v1.1.lua ( 2.73 килобайт ) Кол-во скачиваний: 14


Прикрепленный файл  RedirectorDisconnect_v2.1.1.lua ( 3.41 килобайт ) Кол-во скачиваний: 28


Примечание: Если не хотите видеть никаких сообщений в опчат, закомментируйте или удалите все Core.SendToOpChat

Дополнение:
2.1.1 Исправлен баг с промежутком времени пересекающим границу суток. Измене метод отключения от хаба.

2.1 Добавлено отключение юзеров в момент наступления новых ограничений. То есть, если в 9 утра, сидит человек с шарой меньше 1 гб, то его выключит или перенаправит в зависимости от его IP. Спасибо Nickolya, за идеи и небольшую оптимизацию кода.

2 - Добавлена динамическое ограничение по шаре, меняющееся в течении суток, используется время сервера, убедитесь в его правильности. В стандартных(моих) настройках скрипта
Ограничения на доступ к хабу по шаре:
с 2 до 9 - 0 Гб
с 9 до 12 - 1 Гб
с 12 до 15 - 3 Гб
с 15 до 18 - 5 Гб
с 18 до 23 - 10 ГБ
с 23 до 2 - 7 Гб

1.1 - пофикшен баг с обработкой профилей, редиректились только незарегистрированные. Добавлена возможность управление профилями.


Спасибо сказали:
Go to the top of the page
+Quote Post
Saymon21
сообщение 12.12.2010, 3:42
Сообщение #2


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




Тему по правилам оформи!
Go to the top of the page
+Quote Post
MaxFox
сообщение 12.12.2010, 3:47
Сообщение #3


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

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




Цитата(Saymon @ 12.12.2010, 3:42) *
Тему по правилам оформи!

сори, сча исправлюсь
Go to the top of the page
+Quote Post
Tsd
сообщение 13.12.2010, 16:36
Сообщение #4


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

Группа: Пользователи
Сообщений: 176
Регистрация: 11.7.2008
Пользователь №: 171
Спасибо сказали: 182 раза




К сожалению, у многих отключено автоматическое перенаправление. Поэтому редирект под вопросом.
Go to the top of the page
+Quote Post
MaxFox
сообщение 13.12.2010, 17:16
Сообщение #5


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

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




Цитата(Tsd @ 13.12.2010, 16:36) *
К сожалению, у многих отключено автоматическое перенаправление. Поэтому редирект под вопросом.

Я это понимаю, цель, которую я ставил перед собой решена. За чужие настройки отвечать никто не может...
Go to the top of the page
+Quote Post
mishanspb
сообщение 10.1.2011, 7:27
Сообщение #6


Начинающий
*

Группа: Пользователи
Сообщений: 10
Регистрация: 13.3.2010
Пользователь №: 6 336
Спасибо сказали: 0 раз




MaxFox
Макс, а можно отдельную версию без редиректов, диапазонов и проч..
Нужно только ограничение по шаре в зависимости от времени суток.
Ну не силен я в луа ))

Спасибо.
Go to the top of the page
+Quote Post
Nickolya
сообщение 10.1.2011, 20:25
Сообщение #7


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Код
---------------------------------------------------------------
-- Скрипт редиректа всех, кроме IP внесенных ниже              --
-- v1.1 Пофикшен небольшой баг с обработкой профилей,        --
-- добавлена возможность исключение профилей из редиректа    --
--                  created by MaxFox                        --
---------------------------------------------------------------
--Ники Исключения
tAviableNicks = {
    ["Ник"] = true,
}
---------------------------------------------------------------
function UserConnected(tUser)
    local iHour = tonumber(os.date"%H")
    if iHour >= 2 and iHour < 9 then
        iMinShare = 0
    elseif iHour >= 9 and iHour < 12 then
        iMinShare = 1024^3
        lMinShare = 1              --    эта переменная необходима для корректного вывода сообщений, дабы не менять везде одно и тоже.
    elseif iHour >= 12 and iHour < 15 then
        iMinShare = 3*1024^3
        lMinShare = 3
    elseif iHour >= 15 and iHour < 18 then
        iMinShare = 5*1024^3
        lMinShare = 5
    elseif iHour >= 18 and iHour <= 23 then
        iMinShare = 10*1024^3
        lMinShare = 10
    elseif iHour >= 23 and iHour <= 2 then
        iMinShare = 7*1024^3
        lMinShare = 7
    end
    if not tAviableNicks[tUser.sNick] and ((Core.GetUserValue(tUser, 16) or 0) < iMinShare) then
        Core.SendToUser(tUser, " *** Внимание!!! У вас мало шары. На данный момент необходимо от "..lMinShare.." Гб шары. Для того, что-бы ее увеличить зайдите Фаил->Настройки->Шара. Время сервера "..os.date("%X")..""")
        Core.Disconnect(tUser)
        -- Core.SendToOpChat("Юзер "..tUser.sNick.." IP "..tUser.sIP.." пытался войти на хаб.")
    end    
end
RegConnected = UserConnected
OpConnected = UserConnected
Go to the top of the page
+Quote Post
mishanspb
сообщение 11.1.2011, 18:17
Сообщение #8


Начинающий
*

Группа: Пользователи
Сообщений: 10
Регистрация: 13.3.2010
Пользователь №: 6 336
Спасибо сказали: 0 раз




Nickolya
Благодарю !
Последний вопрос, а операторов и выше он с любой шарой пропускает или нужно вбивать их ники тоже в список исключений ?
Go to the top of the page
+Quote Post
Nickolya
сообщение 11.1.2011, 20:40
Сообщение #9


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




mishanspb, проверки по профилю в скрипте нет, поэтому будет ловить всех, кроме таблицы с никами-исключениями. Убрать проверку на пользователей с ключами можно просто удалив строку
Код
OpConnected = UserConnected

А удаление
Код
RegConnected = UserConnected
приведет к отсутствию проверки у всех зарегистрированных юзеров без ключа.
Если надо именно по профилям, то смотрим как это сделать в FAQ'е.


Спасибо сказали:
Go to the top of the page
+Quote Post
mishanspb
сообщение 13.1.2011, 11:46
Сообщение #10


Начинающий
*

Группа: Пользователи
Сообщений: 10
Регистрация: 13.3.2010
Пользователь №: 6 336
Спасибо сказали: 0 раз




А реально ли сделать так, чтобы при наступлении нужного часа он сам отрубал малошарных пользователей ?
Сейчас они так и висят до перезахода.
Go to the top of the page
+Quote Post
Nickolya
сообщение 15.1.2011, 4:56
Сообщение #11


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Реально,
всё реально
Код
---------------------------------------------------------------
-- Скрипт редиректа всех, кроме IP внесенных ниже              --
-- v1.1 Пофикшен небольшой баг с обработкой профилей,        --
-- добавлена возможность исключение профилей из редиректа    --
--                  created by MaxFox                        --
---------------------------------------------------------------
-- Ники-исключения из проверки:
tAviableNicks = {
    ["Ник"] = true,
}
-- Профили для проверки:
tCheckProfiles = {
    [0] = false,
    [1] = false,
    [2] = false,
    [3] = true,
    [-1] = true,
}
---------------------------------------------------------------
function OnStartup()
    TmrMan.AddTimer(60000, "MakeLimit")
    sBot = SetMan.GetString(21)
end

function MakeLimit()
    local iHour = tonumber(os.date"%H")
    local gb = 1024^3
    local was = iMinShare or false
    if iHour >= 2 and iHour < 9 then
        iMinShare = 0
    elseif iHour >= 9 and iHour < 12 then
        iMinShare = 1*gb
    elseif iHour >= 12 and iHour < 15 then
        iMinShare = 3*gb
    elseif iHour >= 15 and iHour < 18 then
        iMinShare = 5*gb
    elseif iHour >= 18 and iHour <= 23 then
        iMinShare = 10*gb
    elseif iHour >= 23 or iHour <= 2 then    -- поправил условие, а то "elseif iHour >= 23 and iHour <= 2 then" не будет true никогда
        iMinShare = 7*gb
    end
    if was and iMinShare ~= was then
        local t = Core.GetOnlineUsers() or {}
        for _, tUser in ipairs(t) do
            UserConnected(tUser)
        end
    end
    lMinShare = iMinShare/gb
end
MakeLimit()

function UserConnected(tUser)
    if not tAviableNicks[tUser.sNick] and tCheckProfiles[tUser.iProfile] and ((Core.GetUserValue(tUser, 16) or 0) < iMinShare) then
        Core.SendToUser(tUser, "<"..sBot.."> *** Внимание!!! У вас мало шары. На данный момент необходимо от "..lMinShare.." Гб шары. Для того, что-бы ее увеличить зайдите Фаил->Настройки->Шара. Время сервера "..os.date("%X")..""")
        -- Core.SendToOpChat("<"..sBot.."> *** Юзер "..tUser.sNick.." IP "..tUser.sIP.." пытался войти на хаб.")
        Core.Disconnect(tUser)
    end    
end
RegConnected = UserConnected
OpConnected = UserConnected
Go to the top of the page
+Quote Post
mishanspb
сообщение 16.1.2011, 15:10
Сообщение #12


Начинающий
*

Группа: Пользователи
Сообщений: 10
Регистрация: 13.3.2010
Пользователь №: 6 336
Спасибо сказали: 0 раз




Nickolya
Спасибо, о мудрый человек, пока полет нормальный
Кстати почему-то 5-10 юзеров все равно не отключается, хоть и должны.. но это уже совсем мелочи
Go to the top of the page
+Quote Post
Ksan
сообщение 16.1.2011, 16:46
Сообщение #13


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




Возможно, тут сочетание нескольких моментов...
1. У них отключено автоматическое перенаправление.
2. У них Грейлинк.
3. В Грейлинке стоит галочка "Нет пауз между попытками подключения к хабу"
Их скрипт дисконнектит и они сразу же вновь заскакивают на хаб, и ты не успеваешь даже заметить, что они были скинуты.
Go to the top of the page
+Quote Post
Nickolya
сообщение 16.1.2011, 21:11
Сообщение #14


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




mishanspb, Должны отключаться все, надеюсь ты ничего не менял big_smile.gif И ты уверен, что те юзеры, что остались, имеют профиль, попадающий под работу скрипта?
Ksan, последняя редакция только с отключением, никаких редиректов. А подключение без пауз тоже не должно играть роли, если только хаб не глючит от этого.
Go to the top of the page
+Quote Post
MaxFox
сообщение 17.1.2011, 12:37
Сообщение #15


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

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




Цитата(Nickolya @ 16.1.2011, 21:11) *
mishanspb, Должны отключаться все, надеюсь ты ничего не менял big_smile.gif И ты уверен, что те юзеры, что остались, имеют профиль, попадающий под работу скрипта?
Ksan, последняя редакция только с отключением, никаких редиректов. А подключение без пауз тоже не должно играть роли, если только хаб не глючит от этого.

В общем, спасибо Nickolya, за идею и небольшую отимизацию, по его мотивам модифицировал свой сткрипт с редиректом и отключением, в течении дня выложу. Пока у себя проверил все работает.

Кстати.. вопрос... Товарисчи из цыфры, переписывали исходники птоки, так как у них явно это реализовано методами хаба. или специально обученный человек меняет шару по времени? XD
Go to the top of the page
+Quote Post
Артём
сообщение 17.1.2011, 13:24
Сообщение #16


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 773 раза




MaxFox, задай лучше этот вопрос Яdmin aka sphinx big_smile.gif
Go to the top of the page
+Quote Post
MaxFox
сообщение 14.4.2011, 18:07
Сообщение #17


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

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




Долго мучился в раздумьях, почему все же бывают те кто проскакивают фильтр... о чем Миша писал, у себя наблюдая тоже самое... и заметил, что ежели использовать не Core.Disconnect(tUser), а Core.Disconnect(sNick), тоетсь дисконектить по нику, то проскачивших можно считать по пальцам одной-двух рук, учитывая, что на хаб пытается проскочить эжак 6000-8000 юзеров... в случае Core.Disconnect(tUser), проскакивало на много больше... 30-50... может и еще больше...
Спрашивается, как так?
Go to the top of the page
+Quote Post

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

Collapse

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

  Тема Ответов Автор Просмотров Последнее сообщение
No new Отключение автоматического редиректа
памагииите...
14 MIKHAIL 12 184 31.10.2016, 23:17 Посл. сообщение: HackFresse
No New Posts Автоматическое отключение от хаба
6 averon.nv 9 746 27.1.2011, 16:18 Посл. сообщение: Come_clarity
No New Posts Topic has attachmentsРедирект всех, кроме...
помогите разобраться
6 MaxFox 8 918 11.12.2010, 19:37 Посл. сообщение: Артём
No New Posts От: Редирект двсех, кроме...
От темы с ID: 4131
2 LOPD 4 756 10.12.2010, 14:04 Посл. сообщение: LOPD
No New Posts Редирект по времени
3 Exodus 7 277 20.5.2010, 12:11 Посл. сообщение: Nickolya
No New Posts От: Отключение чата!
От темы с ID: 3474
0 sania 3 980 19.5.2010, 19:55 Посл. сообщение: sania
No new Topic has attachmentsОтключение чата!
14 forZejkee 14 808 19.5.2010, 19:37 Посл. сообщение: forZejkee
No New Posts Topic has attachmentsРедирект для диапазона
3 truth 6 133 9.3.2010, 11:30 Посл. сообщение: Nickolya
No New Posts Отключение Главного Чата
в заданый период времени API2
4 prapor 7 617 24.12.2008, 20:40 Посл. сообщение: prapor

 



RSS Сейчас: 28.3.2024, 16:25