myDC.ru

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

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

> Nolimit, проверка ограничений по скорости

Теги
Нет тегов для показа
ustas
сообщение 2.1.2009, 18:53
Сообщение #1


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

Группа: Пользователи
Сообщений: 177
Регистрация: 20.5.2008
Пользователь №: 5
Спасибо сказали: 26 раз




Есть такой скрипт, автор кажется Nickolya, я только добавил функцию GetNormalValue (спс Setuper)
работает, отключает, но спотыкается на Авалинке (я так понимаю, из-за нестандартного тэга)
NoLimit_1.1.lua:29: attempt to compare nil with number

Прикрепленный файл  NoLimit_1.1.lua ( 2.12 килобайт ) Кол-во скачиваний: 34
Go to the top of the page
+Quote Post
Nickolya
сообщение 2.1.2009, 20:31
Сообщение #2


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

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




Код
function CheckLimit(tCurUser)
    local Limit = tCurUser.iLlimit or 0

С этим исправлением ошибки быть не должно, но обрабатываться тег не будет...
Тег клиента в студию и будем дорабатывать функцию GetNormalValue big_smile.gif
Go to the top of the page
+Quote Post
Setuper
сообщение 2.1.2009, 20:51
Сообщение #3


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Тег авалинка отличается тем, что в теге нет идентификатора версии: <AvaLink 1.3,M:A,H:1/0/0,S:2> Обычно тег выглядит так: <++ V:0.707,M:A,H:1/0/0,S:2>
Go to the top of the page
+Quote Post
ustas
сообщение 2.1.2009, 20:57
Сообщение #4


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

Группа: Пользователи
Сообщений: 177
Регистрация: 20.5.2008
Пользователь №: 5
Спасибо сказали: 26 раз




у последней версии тэг нормальный <AvaDC V:1.55,M:A,H:0/1/0,S:20,L:2048>
обрабатывается корректно

<AvaLink 1.3,M:A,H:7/0/0,S:10,L:30> не хотит

понаблюдал немного
Лимит авалинка скрипт ловит, но почему-то обрабатывает не как число
attempt to compare string with number
есть какие-нибудь идеи?

исправил local Limit = tonumber(tCurUser.iLlimit)
и заработало )
осталось сделать так, чтобы для инетчиков и локальщиков ограничения были разные
Go to the top of the page
+Quote Post
Setuper
сообщение 4.1.2009, 20:48
Сообщение #5


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Для инетчиков и локальщиков надо проверять диапазоны ip адресов. Используй для проверки функцию IsLocal(tUser):
Код
local tLocalIPs = {
  {"10.0.0.0", "10.255.255.255"},
  {"192.168.0.0", "192.168.255.255"},
  {"172.16.0.0", "172.31.255.255"},
}

function OnStartup()
  SetToNum()
end

function SetToNum()
  for i, v in ipairs(tLocalIPs) do
    tLocalIPs[i][1] = Ip2Num(tLocalIPs[i][1])
    tLocalIPs[i][2] = Ip2Num(tLocalIPs[i][2])
  end
end

function Ip2Num(sIP)
    local _,_,a,b,c,d=sIP:find"^(%d+)%.(%d+)%.(%d+)%.(%d+)$"
    return tonumber(a)*16777216+tonumber(b)*65536+tonumber(c)*256+tonumber(d)
end

function IsLocal(tUser)
  tUser.iIP = Ip2Num(tUser.sIP)
  for i, v in ipairs(tLocalIPs) do
    if tUser.iIP > v[1] and tUser.iIP < v[2] then
      return true
    end
  end
end
Go to the top of the page
+Quote Post
ustas
сообщение 4.1.2009, 22:55
Сообщение #6


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

Группа: Пользователи
Сообщений: 177
Регистрация: 20.5.2008
Пользователь №: 5
Спасибо сказали: 26 раз




блин, весь кайф испортил, сам хотел написать )))
Благодарю
так не работает
Код
local tLocalIPs = {
  {10.0.0.0, 10.255.255.255},
  {192.168.0.0, 192.168.255.255},
  {172.16.0.0, 172.31.255.255},
}


а так работает
Код
local tLocalIPs = {
  {"10.0.0.0", "10.255.255.255"},
  {"192.168.0.0", "192.168.255.255"},
  {"172.16.0.0", "172.31.255.255"},
}
Go to the top of the page
+Quote Post
Angel_D
сообщение 29.1.2009, 20:55
Сообщение #7


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

Группа: Пользователи
Сообщений: 128
Регистрация: 12.10.2008
Пользователь №: 781
Спасибо сказали: 2 раза




Прошу прощения, но так и не понял как скрипт должен выглядеть в конечном итоге...
И можно придумать, чтоб различным диапозонам IP можно было различные лимиты выставлять?
Go to the top of the page
+Quote Post
ustas
сообщение 30.1.2009, 9:06
Сообщение #8


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

Группа: Пользователи
Сообщений: 177
Регистрация: 20.5.2008
Пользователь №: 5
Спасибо сказали: 26 раз




Вот пример скрипта, набросал на работе. Тут ограничение можно установить для конкретных ников.
тег Авалинка обрабатываетя некорректно, ошибка NoLimit.lua:41: attempt to compare nil with number
на сервере я что-то изменял в функции GetNormalValue, но не помню что именно.
Ошибки возникают, но тег обрабатывает, авалинковцев выкидывает
Прикрепленный файл  NoLimit.lua ( 3.38 килобайт ) Кол-во скачиваний: 16
Go to the top of the page
+Quote Post
Setuper
сообщение 30.1.2009, 13:11
Сообщение #9


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




http://mydc.ru/ipb.html?s=&showtopic=3...post&p=9085
Go to the top of the page
+Quote Post

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

Collapse

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

  Тема Ответов Автор Просмотров Последнее сообщение
No new Topic has attachmentsNoLimit 1.3
API1, API2 | Скрипт запрета определенных ограничений скорости отдачи
32 Nickolya 32 870 11.2.2013, 21:03 Посл. сообщение: Артём
No New Posts Nolimit
API 1&2
0 Nickolya 3 870 12.1.2010, 22:56 Посл. сообщение: Nickolya

 



RSS Сейчас: 27.4.2024, 11:15