Редирект всех, кроме..., помогите разобраться |
Здравствуйте, гость ( Вход | Регистрация )
Редирект всех, кроме..., помогите разобраться |
10.12.2010, 13:38
Сообщение
#1
|
|
Продвинутый участник Группа: Пользователи Сообщений: 120 Регистрация: 25.5.2009 Пользователь №: 3 432 Спасибо сказали: 20 раз |
Задача такова, есть хаб, на котором сидят и интернет юзеры и локальные юзеры. Необходимо всех проверять на шару и если она меньше установленного порога, то локальных юзеров при этом просто дисконектить, а интернет пользователей перенаправлять на другой хаб.
Вот мои труды... просьба поправить где не прав. Скрипт делался опираясь на похожие задачи. В скрипте сделал 2 вывода, чтобы видеть процесс. Раскрывающийся текст --------------------------------------------------------------- -- Скрипт редиректа всех кроме IP внисенных ниже -- --------------------------------------------------------------- -- Адрес хаба на который редиректим sAddress = "dchub://123" -- Сообщение которое получают пользователи при редиректе local sMsg = "Вы перенаправленны на..." --Диапозон IP который не редиректим local tRanks = { {"10.0.0.0","10.255.255.255"}, {"172.16.0.0","172.16.255.255"}, {"192.168.0.0","192.168.255.255"}, {"172.20.0.0","172.20.255.255"}, } -- Минимальная для входа шара, в байтах: iMinShare = 5*1024^3 -- 5 Gb --------------------------------------------------------------- function iIp(sIP) local a, b, c, d = sIP:match"^(%d+)%.(%d+)%.(%d+)%.(%d+)$" return a * 16777216 + b * 65536 + c * 256 + d end function OnStartup() for k, v in ipairs(tRanks) do tRanks[k][1], tRanks[k][2] = iIp(v[1]), iIp(v[2]) end end function UserConnected(tUser) if (Core.GetUserValue(tUser, 16) or 0) < iMinShare then local iIP = iIp(tUser.sIP) for _, v in ipairs(tRanks) do if iIP < v[1] or iIP > v[2] then Core.SendToUser(tUser, "Внимание!!! сейчас вы будете перенаправленны") Core.Redirect(tUser, sAddress, sMsg) Core.SendToOpChat(tUser.sIP) return else Core.Disconnect(tUser) Core.SendToOpChat(tUser.sNick) return end end end end Что не работает, периодически перенаправляет тех, кого должен отключать |
|
|
10.12.2010, 17:51
Сообщение
#2
|
|
7 квадратиков Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз |
Как-то так (не проверял):
Раскрывающийся текст Код function UserConnected(tUser) if (Core.GetUserValue(tUser, 16) or 0) < iMinShare then local iIP = iIp(tUser.sIP) local bIsLocal = false for _, v in ipairs(tRanks) do if iIP > v[1] and iIP < v[2] then bIsLocal = true break end end if bIsLocal then Core.Disconnect(tUser) Core.SendToOpChat(tUser.sNick) else Core.SendToUser(tUser, "Внимание!!! сейчас вы будете перенаправленны") Core.Redirect(tUser, sAddress, sMsg) Core.SendToOpChat(tUser.sIP) end end end |
|
|
10.12.2010, 18:13
Сообщение
#3
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
RedirectInternetUsers.lua ( 1.85 килобайт ) Кол-во скачиваний: 11 В опчат приходит такое сообщение: Цитата <OpChat> Локальный Юзер Unreg IP 10.0.0.0 пытался войти на хаб.
<OpChat> Интернет Юзер Unreg IP 10.0.0.0 пытался войти на хаб, но был перенаправлен на dchub://123 из-за маленькой шары. |
|
|
11.12.2010, 1:18
Сообщение
#4
|
|
Продвинутый участник Группа: Пользователи Сообщений: 120 Регистрация: 25.5.2009 Пользователь №: 3 432 Спасибо сказали: 20 раз |
Спасибо парни, за свежие идеи =)
Вывод был сделан только для контроля работы скрипта, а вы с ним помудрили... Даже мой скромный вывод, создает аццкий ффлуд в опчате, порядка 3-5 пользователей в секунду (Пиковый онлайн хаба почти 10 000 юзеров). |
|
|
11.12.2010, 14:46
Сообщение
#5
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
MaxFox, закомментируй
Код Core.SendToOpChat чтобы не флудило в опчате P.S сливай мне "ненужных" юзеров |
|
|
11.12.2010, 19:15
Сообщение
#6
|
|
Продвинутый участник Группа: Пользователи Сообщений: 120 Регистрация: 25.5.2009 Пользователь №: 3 432 Спасибо сказали: 20 раз |
|
|
|
11.12.2010, 19:37
Сообщение
#7
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
MaxFox, я пошутил
|
|
|
Похожие темы
|
Сейчас: 23.11.2024, 2:47 |