Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Kорзина _ Отделение Юзеров С Интернета

Автор: intlive 23.11.2008, 19:05

Ребят.. Мб есть уже что, что не нашёл..
Хотелось бы что-то вроде "срезки" с хуббы..
Например по локалке ипы 198.192.0.1 - 198.192.0.255 а все остальное инет.. Отделить бы локалку и инет и чтобы при заходе локалки им писалось что "ваш доступ к инэт юзерам закрыт, открыть можно через меню и тд.." а у инет юзеров все открыто...

API 2 ptoka 4.1.0 feel_good.gif

Автор: 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) проходит... still_dreaming.gif

Автор: 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 раз объяснил. Мне надоело одно и тоже писать.