Версия для печати темы
MyDC.ru _ Kорзина _ Отделение Юзеров С Интернета
Автор: intlive 23.11.2008, 19:05
Ребят.. Мб есть уже что, что не нашёл..
Хотелось бы что-то вроде "срезки" с хуббы..
Например по локалке ипы 198.192.0.1 - 198.192.0.255 а все остальное инет.. Отделить бы локалку и инет и чтобы при заходе локалки им писалось что "ваш доступ к инэт юзерам закрыт, открыть можно через меню и тд.." а у инет юзеров все открыто...
API 2 ptoka 4.1.0
Автор: Setuper 23.11.2008, 19:19
ищи скрипт разделения сетей!
Автор: intlive 23.11.2008, 19:22
Цитата(Setuper @ 23.11.2008, 23:19)
ищи скрипт разделения сетей!
Раньше использовал сейчас уже не подходит, в нём или автоматом разделены сети или не разделены... Тоесть В идеале хотелось бы чтобы у инет юзеров вообще небыло прав на закрытие доступа..
Автор: Setuper 24.11.2008, 12:54
ну так тогда надо немного подправить скрипт и всего-то дел
Автор: intlive 24.11.2008, 13:30
Цитата(Setuper @ 24.11.2008, 16:54)
ну так тогда надо немного подправить скрипт и всего-то дел
А не могли бы вы тогда натолкнуть на мысль с какого именно места надо править я попробую разобраться..
Автор: Setuper 24.11.2008, 13:38
Не совсем понимаю зачем тебе это надо?
Если у инет-юзеров будет всё открыто, то они смогут скачивать с локальных юзеров и у локальных юзеров будет уходить траф. На твоём хабе сразу завопят, что у них траф утекает из-за того, что с них качают из инета.
Автор: intlive 24.11.2008, 13:48
Цитата(Setuper @ 24.11.2008, 17:38)
Не совсем понимаю зачем тебе это надо?
Если у инет-юзеров будет всё открыто, то они смогут скачивать с локальных юзеров и у локальных юзеров будет уходить траф. На твоём хабе сразу завопят, что у них траф утекает из-за того, что с них качают из инета.
Немного не так.
Нужно чтобы у инет юзеров был открыт доступ на скачку с локальных юзеров которые сами это разрешат, а у остальных по умолчанию нет..
Тоесть трафик пойдет только с тех у кого анлим и он пожелает открыть доступ..
У остальных по локалке кто не открывал доступ скачивания с инет-юзеров и инет-юзеров у них не будет...
Автор: Setuper 24.11.2008, 14:11
Натолкну на нужный путь.
Ищем скрипт разделение сетей, вписываем локальные сети (не вписанные сети будут инетовскими), исправляем все куски кода:
Код
if not tOffed[curUser.sNick] then
return
end
на следующие:
Код
if not tOffed[curUser.sNick] or iUsersNetwork==0 then
return
end
Автор: intlive 24.11.2008, 14:28
Цитата(Setuper @ 24.11.2008, 18:11)
Натолкну на нужный путь.
Ищем скрипт разделение сетей, вписываем локальные сети (не вписанные сети будут инетовскими), исправляем все куски кода:
Код
if not tOffed[curUser.sNick] then
return
end
на следующие:
Код
if not tOffed[curUser.sNick] or iUsersNetwork==0 then
return
end
Премного благодарю, а можно менюшку как-то отсылать в зависимости от наличия ип в прописанном диапозоне?
Автор: Setuper 24.11.2008, 14:40
замени строчку:
Код
if not bLoad then
на строчку
Код
if not bLoad and iUsersNetwork~=0 then
Автор: intlive 24.11.2008, 16:34
Странно... Даже при включенном разделени трафик между инетом (индификатор 0 ) и локалкой ( 1) проходит...
Автор: Setuper 24.11.2008, 17:09
По коду, если у меня отключено разделение, то я могу коннектится к тому у кого оно включено, а он ко мне не может. При включенном у меня ограничении будут сравниваться сети.
В идеале наверное было бы так:
Код
if not tOffed[curUser.sNick] or iUsersNetwork==0 then
if not tOffed[sNeedNick] or iNeedUsersNetwork==0 then
return
end
end
Автор: intlive 24.11.2008, 17:10
Цитата(Setuper @ 24.11.2008, 20:59)
По коду, если у меня отключено разделение, то я могу коннектится к тому у кого оно включено, а он ко мне не может. При включенном у меня ограничении будут сравниваться сети.
А можно сделать так чтобы при включенном у меня разделении ко мне не могли коннектится люди не с моей сети (тоесть с нета) и я не мог к ним коннектитбся. А при выключенном разделении все можно...?
Автор: Setuper 24.11.2008, 17:13
Код привёл выше. Попробуй.
Автор: intlive 24.11.2008, 17:18
Цитата(Setuper @ 24.11.2008, 21:09)
По коду, если у меня отключено разделение, то я могу коннектится к тому у кого оно включено, а он ко мне не может. При включенном у меня ограничении будут сравниваться сети.
В идеале наверное было бы так:
Код
if not tOffed[curUser.sNick] or iUsersNetwork==0 then
if not tOffed[sNeedNick] or iNeedUsersNetwork==0 then
return
end
end
Так файлообмен что открыт что закрыт все равно идет...
Автор: Setuper 24.11.2008, 17:25
Ты где этот код изменяешь? Надо изменять в функции ConnectToMeArrival
Автор: intlive 24.11.2008, 17:31
function ConnectToMeArrival(curUser, sData)
local _,_, sNeedNick = string.find(sData, "^%S+%s(%S+)")
local iNeedUsersNetwork = tSeparatedUsers[sNeedNick]
local iUsersNetwork = tSeparatedUsers[curUser.sNick]
if iNeedUsersNetwork then
if not tOffed[curUser.sNick] or iUsersNetwork==0 then
if not tOffed[sNeedNick] or iNeedUsersNetwork==0 then
return
end
end
Вот как у меня сайчас...
Автор: Setuper 24.11.2008, 17:42
Допустим я коннектюсь из инета к пользователю из локальной сети. У пользователя из локальной сети включено разделение. Код, который я привёл работает следующим образом:
так как я из инета, то iUsersNetwork=0, значит первое условие проходит, далее, так как пользователь к которому я коннектюсь не из инета, то iNeedUsersNetwork~=0, так как у него включено разделение, то tOffed[sNeedNick]=1, поэтому второе условие не проходит, а следовательно функция не возвращает nil и следовательно идём дальше, а дальше сравниваются сети. Так как сети не равны, то соединение невозможно.
Тут всё предельно ясно. Ищи где у тебя не так.
для проверки напиши код:
Код
function ConnectToMeArrival(curUser, sData)
local _,_, sNeedNick = string.find(sData, "^%S+%s(%S+)")
local iNeedUsersNetwork = tSeparatedUsers[sNeedNick]
local iUsersNetwork = tSeparatedUsers[curUser.sNick]
if iNeedUsersNetwork then
local sOwnerNick="твой_ник_на_хабе"
if not tOffed[curUser.sNick] then
Core.SendToNick(sOwnerNick,"not tOffed["..curUser.sNick.."]")
if not tOffed[sNeedNick] then
Core.SendToNick(sOwnerNick,"not tOffed["..sNeedNick.."]")
return
end
if iNeedUsersNetwork==0 then
Core.SendToNick(sOwnerNick,"iNeedUsersNetwork=0")
return
end
end
if iUsersNetwork==0 then
Core.SendToNick(sOwnerNick,"iUsersNetwork=0")
if not tOffed[sNeedNick] then
Core.SendToNick(sOwnerNick,"not tOffed["..sNeedNick.."]")
return
end
if iNeedUsersNetwork==0 then
Core.SendToNick(sOwnerNick,"iNeedUsersNetwork=0")
return
end
end
...
или вот такой код для проверки:
Код
function ConnectToMeArrival(curUser, sData)
local _,_, sNeedNick = string.find(sData, "^%S+%s(%S+)")
local iNeedUsersNetwork = tSeparatedUsers[sNeedNick]
local iUsersNetwork = tSeparatedUsers[curUser.sNick]
if iNeedUsersNetwork then
local sOwnerNick="твой_ник_на_хабе"
Core.SendToNick(sOwnerNick,"tOffed[curUser.sNick] = "..tostring(tOffed[curUser.sNick]))
Core.SendToNick(sOwnerNick,"iUsersNetwork = "..tostring(iUsersNetwork))
Core.SendToNick(sOwnerNick,"tOffed[sNeedNick] = "..tostring(tOffed[sNeedNick]))
Core.SendToNick(sOwnerNick,"iNeedUsersNetwork = "..tostring(iNeedUsersNetwork))
if not tOffed[curUser.sNick] or iUsersNetwork==0 then
if not tOffed[sNeedNick] or iNeedUsersNetwork==0 then
return
end
end
...
Автор: intlive 24.11.2008, 17:58
Я зашёл на хаб разделение сетей включено
мне написалось:
[21:46:34] tOffed[curUser.sNick] = nil
[21:46:34] iUsersNetwork = 0
[21:46:34] tOffed[sNeedNick] = nil
[21:46:34] iNeedUsersNetwork = 0
потом я попытался скачать файл с инет-юзера
мне написалось
[21:49:39] tOffed[curUser.sNick] = nil
[21:49:39] iUsersNetwork = 1
[21:49:39] tOffed[sNeedNick] = nil
[21:49:39] iNeedUsersNetwork = 1
[21:49:40] tOffed[curUser.sNick] = nil
[21:49:40] iUsersNetwork = 0
[21:49:40] tOffed[sNeedNick] = nil
[21:49:40] iNeedUsersNetwork = 1
и файл-лист скачался...
потом я отключил разделение сетей и я не могу скачать и у меня не могут.... тоесть все работает с точность наоборот ;)
Как сделать чтобы было правильно?
Автор: Setuper 24.11.2008, 20:07
нет, всё правильно!
tOffed[curUser.sNick] = nil - означает, что разделение сетей отключено, а не включено! не пудри мне мозги!
Ищи в коде строчки и убеждайся:
Код
tOffed[curUser.sNick] = nil
Core.SendToUser(curUser, "<"..sBot.."> *** "..curUser.sNick..", вы ВЫКЛючили разделение сетей, качать теперь можно со всех!")
Автор: intlive 24.11.2008, 20:51
if not tOffed[curUser.sNick] or iUsersNetwork==0 then
if not tOffed[sNeedNick] or iNeedUsersNetwork==0 then
return
end
end
у меня без выделенных корректно работает... странно....
Что означают эти выражения?
Автор: Setuper 24.11.2008, 20:53
Делай как хочешь я уже всё 10 раз объяснил. Мне надоело одно и тоже писать.