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

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

MyDC.ru _ Готовые скрипты для PtokaX _ Network Separation

Автор: Nickolya 22.6.2008, 17:29

Вот он, новый релиз скрипта разделения сетей пользователей. Выкладываю, как и всегда, для 1 и 2 API.

Функционал скрипта (версия 1.3):


Выкладываю версию 1.3b и 1.3.1. В первой исправлена 1 ошибочка в реализации, во второй по умолчанию разделение сетей у пользователя выключено!

 NetworkSeparation_v1.3b___lua_5.1_____API_1_____by_Nickolya___.lua ( 15.11 килобайт ) : 179
 NetworkSeparation_v1.3.1___lua_5.1_____API_1_____by_Nickolya___.lua ( 15.13 килобайт ) : 157
 NetworkSeparation_v1.3b___API_2_____by_Nickolya___.lua ( 15.53 килобайт ) : 291
 NetworkSeparation_v1.3.1___API_2_____by_Nickolya___.lua ( 15.55 килобайт ) : 616
 

Автор: e-ploko 22.6.2008, 19:12

Большое спасибо :rolleyes: несмотря на позднее для моего города время не смог удержаться и не попробовать....
результат даже превзошёл мои ожидания!

Автор: Infernus-pro 22.6.2008, 21:21

Nickolya, подскажи плиз что это за ошибка и как ее исправить?
[00:19] Синтаксис ...etworkSeparation_v1.3___API_2_____by_Nickolya___.lua:264: attempt to call method 'Disconnect' (a nil value)

Автор: Nickolya 22.6.2008, 22:00

Цитата(Infernus-pro @ 22.6.2008, 21:21) *
Nickolya, подскажи плиз что это за ошибка и как ее исправить?
[00:19] Синтаксис ...etworkSeparation_v1.3___API_2_____by_Nickolya___.lua:264: attempt to call method 'Disconnect' (a nil value)

Сорри, опять мои косяки с переводом под новый апи. Файл перезалил, качайте, спасибо за сообщения об ошибках, будут еще претензии - отписывайте.  :mellow:

Автор: e-ploko 23.6.2008, 14:02

Скажите пожалуйста, а как сделать, чтобы по умолчанию стоял не запрет, а наоборот, со всеми сетями резрешён файлообмен..?

Автор: Nickolya 23.6.2008, 14:33

Цитата(e-ploko @ 23.6.2008, 14:02) *
Скажите пожалуйста, а как сделать, чтобы по умолчанию стоял не запрет, а наоборот, со всеми сетями резрешён файлообмен..?

Хм, в данной версии никак!
Вы уже начинаете мудрить, я понимаю, выключить разделение, но включать его руками это по-моему не очень юзабельно. Опять же многие попадут на деньги, пока ты объяснишь всем как это разделение включается, а тут надо всего-то выполнить одну команду и всё, причем это надо только тому, кто может качать с других, и если хочешь, тут уж придется разобраться где это меню и куда там жать.
Конечно, если очень надо, тогда отпиши сюда, я переделаю, но вот что это будет быстро не обещаю.

Автор: otherside 23.6.2008, 15:35

Цитата(Nickolya @ 23.6.2008, 19:33) *
Хм, в данной версии никак!
Вы уже начинаете мудрить, я понимаю, выключить разделение, но включать его руками это по-моему не очень юзабельно. Опять же многие попадут на деньги, пока ты объяснишь всем как это разделение включается, а тут надо всего-то выполнить одну команду и всё, причем это надо только тому, кто может качать с других, и если хочешь, тут уж придется разобраться где это меню и куда там жать.
Конечно, если очень надо, тогда отпиши сюда, я переделаю, но вот что это будет быстро не обещаю.

давно искала такой скрипт, нигде не могу найти... у самой для написания скриптов пока мозгов не хватает.. Nickolya если можно напишите скрипт как предложил e-ploko, то есть чтобы по умолчанию стоял не запрет, а наоборот, со всеми сетями резрешён файлообмен. буду благодарна :rolleyes:

Автор: Nickolya 27.6.2008, 19:29

Цитата
Выкладываю версию 1.3b и 1.3.1. В первой исправлена 1 ошибочка в реализации, во второй по умолчанию разделение сетей у пользователя выключено!

Автор: e-ploko 27.6.2008, 20:53

Спасибо большое.. :rolleyes: просто к хабу прилинковали еще одну сеть, и оказалось что только одиницы могут попасть на траф(сидящие на старых ТП). Они коллективно закрыли обмен через данный скрипт, так что респект автору! :rolleyes:

Автор: dimetrius 13.7.2008, 13:09

Дооолго смеялся big_smile1.gif


Автор: Nickolya 13.7.2008, 22:26

Цитата(dimetrius @ 13.7.2008, 14:09) *
Дооолго смеялся big_smile1.gif

Замечательно, проверка на внимательность пройдена!!!

Хотя щас сам сижу и угараю... big_smile1.gif
Чтож, бывает, да, и со мной. big_smile.gif Просто когда пишешь код, не особо уделяешь внимания тому, какие ты там слова вписал в сообщения, вроде отмазался... ;)
Думаю кто смущен такой шуткой, сами исправят эту оплошность, убрано будет в следующей версии, если она будет.

Автор: Grey 17.7.2008, 15:57

маладетс victory.gif

Автор: otmAroZoK 4.8.2008, 16:31

Ребят подскажите. Надо изменить не параметры не на максимальный размер шары (не понимаю зачем так) а на минимальный.

Разобрался, вопрос отпал.

if (tCurShare[iUsersNetwork] + iUserShare) < tNetworkShareLimit[iUsersNetwork] and tNotLimitedProfiles[curUser.iProfile] ~= 1 then

Автор: PRIZrak 11.8.2008, 22:13

Установил скрипт, настроил - работает, порадовался, на завтра ни с кого не качает (и с меня тоже), если выбираешь блокироваку подсети :(. Я что-то криво настроил или может у кого ещё было? (PtokaX 0.3.6.0 под управлением HUB's Big Ass Bot v2.28 RC3c )

Автор: PRIZrak 12.8.2008, 17:33

Ещё есть предложение - упростить скрипт, чтобы можно было только вкл-выкл возможность скачивания с др. сети. Остальные прибумбасы мне, например, не нужны, и возможно глюки вызывает неправильная конфигурация мною данного скрипта.

Автор: Инкогнито 14.8.2008, 22:28

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

Цитата
Синтаксис ...tworkSeparation_v1.3b___API_2_____by_Nickolya___.lua:326: attempt to concatenate field '?' (a nil value)

если точнее, то это строка
Цитата
sMsg = sMsg.." Чтобы изменить статус разделения или отправки сообщений, воспользуйтесь меню."

птоха 0.4.1.1 скрипт NetworkSeparation_v1.3b___API_2_____by_Nickolya___.lua

Автор: otmAroZoK 26.8.2008, 19:54

модернизировал скрипт на доступ по минимальной шаре (выше описал), но появились сообщение что пользователи не могут попасть на хаб. причина: мало расшарено, хотя каждый уверяет что его шара в несколько раз превышает минимальную. Кто сможет подскажите в чем может быть проблема, или помогите модернизировать скрипт, чтобы для каждой сети было свое ограничение на минимальную ширу и ни чего лишнего.

Автор: Setuper 26.8.2008, 22:41

attempt to concatenate field '?' (a nil value)

Дословный перевод: попытка присоединить поле '?' (пустое значение)

Причина: возможно переменная sMsg, котороя присоединяется к предложению не была объявлена ранее.

Автор: Goblin 7.9.2008, 8:07

Кто может переделать скрипт, чтобы команды включить отключить развременение сети не работали, чтобы по умолчанию могли качать тока из свой сети т.е. 1 сеть тока у первой сети может качать, 2 сеть тока у 2 сети может качать.

Автор: DIMANES 21.9.2008, 12:37

у меня птока 0360 почему я могу заходить другие нет? какую мне ставить? у меня луа 512

Автор: Perspect 10.11.2008, 0:48

Этот скрипт вообще, тестировался или на авось сляпали?
У пользователя А(лок.сеть) включено разделение сетей и он не может скачивать с других сетей.
Пользователь B(интернет), у которого ВЫКЛючено разделение между сетями, свободно скачивает у пользователя А.
В чём логика?

А может я чего-то не догоняю? big_smile.gif

 разделение_сетейNetworkSeparation_v1.3.1.rar ( 4.27 килобайт ) : 8
 

Автор: Nickolya 10.11.2008, 9:14

Конечно на авось, там столько наворотов что чтобы они работали мне надо писать скрипты в полный рабочий день... Это коненчно шутка, но так я и не разобрался с этими премудростями протокола и прочей ерунды, так что это сырая версия на все 100% big_smile1.gif

Автор: mariner 25.11.2008, 22:25

николя и Илья, проверьте, я тут перевел сепаратор на никсы, но никто терь качать не могет. Отрубил - качать могут.... проверьте правильность перевода bad_smile.gif

 NetworkSeparation.lua ( 15.79 килобайт ) : 16

Автор: Wariner 25.11.2008, 22:40

оффтоп: Илья тут не один still_dreaming.gif меня тоже так величать greedy.gif

Автор: Setuper 25.11.2008, 22:40

Откуда у тебя этот код?
В оригинальном коде написано так:

Код
if not tOffed[curUser.sNick] then
  return
end

хотя логичнее было написать так:
Код
if not tOffed[curUser.sNick] then
  if not tOffed[sNeedNick] then
    return
  end
end

Автор: mariner 25.11.2008, 23:31

этот код был скачан отседова. версию не помню, хоть убей.

НУ так что, поможешь последнюю с врубленным разделением перевести на никсы... или подредактировать?
PS я там не накосячил случаем с командами в коде?

Автор: Setuper 25.11.2008, 23:38

я уже написал код.

Замени код

Код
if tOffed[curUser.sNick] then
  return
end
на код:
Код
if not tOffed[curUser.sNick] then
  if not tOffed[sNeedNick] then
    return
  end
end

Автор: mariner 26.11.2008, 1:39

ЗЫ а под никсы то я его верно перевел? =))

Автор: Setuper 26.11.2008, 1:41

А что там переводить? Одну строчку?
Вот мануал перевода: http://mydc.ru/ipb.html?s=&showtopic=539&view=findpost&p=4342

Автор: mariner 26.11.2008, 1:44

собственно это я и сделал =) переписал 2ру строк

Автор: FallenAngel 26.12.2008, 22:47

Скрипт все таки хороший big_smile.gif Благодаю.... Только вот у меня одна, но большая просьба))
Переделать с

Код
    -- Таблица с ограничениями по шаре ([номер сети] = МАКС. шара в байтах):
    tNetworkShareLimit = {
        [0] = 1073741824,
        [2] = 1099511627776,

на

Код
    -- Таблица с ограничениями по шаре ([номер сети] = МИН. шара в байтах):
    tNetworkShareLimit = {
        [0] = 1073741824,
        [2] = 1099511627776,

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

Автор: Nickolya 27.12.2008, 20:58

В скрипте сделано ограничение по всей сети, по просьбе на форуме. Ты же, как я понимаю, хочешь сделать минимальное ограничение на каждого пользователя по определенной сети? Смысл затеи вроде понятен, да и реализация не так уж и сложна.
Постараюсь сделать, как-нибудь на досуге, если он будет... :\

Автор: FallenAngel 28.12.2008, 1:03

Правильно понял..я сначала думал что тут ограничение на каждого отдельного юзера..и когда потом поставил несколько Гб ограничения,то жутко удивился что на хабе осталась администрация и еще один нулевик.....и только уже потом, сообразив что к чему-понял что ограничение на максимальную шару, причем сначала также думал юзера,а в итоге оказалось что ограничение на шару ВСЕЙ сети..а так-желательно чтобы ограниенчение было на каждого юзера)так более удобно....ну если можно-то и оставить и ограничение как оно есть big_smile.gif

Автор: iceman-forever 20.1.2009, 2:12

Предисловие: Небольшая комьютерная локальная Сеть - 200пользователей. В сети 4 сегмента которые соединены WI-FI, в вечернее время скорость падала через точки до 50-60 кб пинг доходил до 3000мс (просто жесть))) Нашёл скрипт NetworkSeparation 1.2 который написал Nickolya!!! Разбил сеть на 4сегмента этим скриптом вводя диапазоны IP адрессов, и включаю скрипт с 18.00 и выключаю в 24.00 тем самым снимая нагрузку в вечерние время с точек- внутри сегмента пользователи могут качать друг у друга..... прикреплённый скрипт !!! Имеется в сети 2 сервера как вы посмотрите в скрипте - они в первой сети
{["sFrom"] = "192.168.0.100", ["sTo"] = "192.168.0.100"},
{["sFrom"] = "192.168.0.200", ["sTo"] = "192.168.0.200"},
Перемещаю эти сервера из одного сегмента в другой вручную, а слотами отдачи уже контралирую скачку через WI-FI(т.е. эти сервера день в одном сегменьте в другой день перебиваю эти IP в другой сегмент ) запускаю и вырубаю скрипт тож вручную
Просьба: дописать 5-ую сеть куда я мог бы включить эти сервера- но что бы с них могли качать все 4 сегмента когда включён скрип-- файлообмен между 4-мя этими сегментами,в это же время, запрещён- кач только внутри сегмента...... и привезать таймер - который будет автоматически включать эти ограничения в заданный отрезок времени - например: с 18.00 до 24.00 как у меня!!!
Зарание всем большое СПАСИБО!!!!

 NetworkSeparation_1.2_test.txt ( 9.16 килобайт ) : 5
 NetworkSeparation_1.2_test.lua ( 9.16 килобайт ) : 7
 

Автор: alexbel007 31.1.2009, 3:30

Скрипт ктоторый замутил Nickolya очень даже не плох ,и у меня есть предложение чтобы его дополнить,конечно по возможности:добавить такую возможность чтобы к примеру:сегмент типа 10.0.1.91-10.0.1.92 мог качать с 2-х часов до 4-х часов;сегмент 10.0.1.93-10.0.1.94 мог качать с 4-х часов до...ну и так далее вот ,для чего это нужно сеть сейчас у нас не очень большая ,оптика стоит в принципе всего по прямой около 4 км но не все еще к этому кабелю подключено из за этого при скачке с пиринга свичи (даже гигабит)виснут и пинг большой получается местами ,так как скорость нельзя ограничить -может Nickolya поможет нам сегменты сети ограничивать в возможности скачивания,это делается временно,пока все не будет сделано в сети,иначе пиринг придется отключить P.S конечно же юзеры не должны иметь права на переключение между режимами,и если возможно чтобы резалась только возможность скачивания и отдачи но не блокировка входа на хаб ,я думаю если все получится то очень многим пригодится.Зарание спасибо!! Прочитал последний пост iceman-forever в принципе тоже самое но я не много усложнил))(Ptokax 0.3.6.0)

Автор: ycaTblu 11.2.2009, 16:18

Добрый день!

Скрипт интересный, но у меня возникла проблемка, скрипт блокирует функию поиска у пассивных клиентов.

Это можно вылечить, или нет?

Ptokax 0.4.1.1 Linux LUA5.1.3

Автор: ZAPP 15.2.2009, 9:21

Здравствуйте уважаемые!
Отличный скрипт, моё почтение автору. Но нельзя ли добавить функцию доступа к командам скрипта для каждого диапазона в отдельности?

На моём примере: имеется три диапазона
-диапазон А (моя сеть)
-диапазон Б (вражеская сеть)
-диапазон В (интернет)

для диапазона "Б" и "В" скачка с диапазона "А" бесплатная (соответственно доступ к функциям скрипта им ненужен и скачка по умолчанию у них должна быть включена)
для диапазона "А" скачка опционально по выбору юзера (по умолчанию скачка с других диапазонов - выключена)

Дело в том, что в сети "А" юзерам на безлимитных тарифах доступ к сети "Б" предоставляется бесплатно, лимитчики неспособные настроить IP фильтр периодически теряют нажитые непосильным трудом деньги.

P.S. такой вот винегрет... На вас вся надежда.

Автор: ycaTblu 16.3.2009, 19:56

Добрый день!

Ошибочка однако в расчеты вкралась.
1.
есть - local _,_, sNeedNick = string.find(sData, ".*(%S+)")
нужно - local _,_, sNeedNick = string.find(sData, ".*(%S+)%|$")

2.
RevConnectToMeArrival = ConnectToMeArrival - неверное высказывание в данном случае, так как разный формат sData:
для ConnectToMeArrival sData = $ConnectToMe ToNick 1.2.3.4:port -- где 'ToNick' - ник получателя запроса, '1.2.3.4:port' - адрес и порт отправителя
для RevConnectToMeArrival sData = $RevConnectToMe FromNick ToNick -- где 'FromNick' - ник отправителя запроса, 'ToNick' - ник получателя запроса

По этим причинам (во всякос случае у меня под linux) не работает поиск и скачивание у пассивных юзеров.

Автор: Setuper 16.3.2009, 20:17

1.
local _,_, sNeedNick = string.find(sData, ".*(%S+)|$")
% не нужен, так как символ | не нуждается в экранировании.

2.
Кто тебе сказал, что строка RevConnectToMeArrival = ConnectToMeArrival, также предусматривает и передачу параметров?
Эта строка означает, что тела данных функций совпадают, а параметры передаются в каждую функцию свои.

команда $ConnectToMe не содержит, в отличии от команды $RevConnectToMe, на конце символа |

Автор: ycaTblu 16.3.2009, 20:19

Цитата(Setuper @ 16.3.2009, 23:14) *
1.
local _,_, sNeedNick = string.find(sData, ".*(%S+)|$")
% не нужен, так как символ | не нуждается в экранировании.

2.
Кто тебе сказал, что строка RevConnectToMeArrival = ConnectToMeArrival также предусматривает передачу параметров?
Эта строка означает, что тела данных функций совпадают, а параметры передаются в каждую функцию свои.


1. может быть, так не проверял
2. вот именно, параметры приходят разные, а скрипт их пытается обработать одной процедурой, что приводит к неправильному получению параметра sNeedNick в RevConnectToMeArrival

Автор: Setuper 16.3.2009, 20:34

Замечание дельное.

Возможно проблема решится, если написать так:

Код
local sNeedNick = sData:match"(%S+) %S+$"
if not sNeedNick then
  sNeedNick = sData:match"(%S+)|$"
end

Автор: ycaTblu 16.3.2009, 20:56

Так как $RevConnectToMe FromNick ToNick,
то local sNeedNick = sData:match"(%S+) %S+$" вернет FromNick
(это если я правльно понимаю)


Я пошел по простому пути, скопировал функцию ConnectToMeArrival, обозвал ее RevConnectToMeArrival,
а строку local _,_, sNeedNick = string.find(sData, "^%S+%s(%S+)")
заменил на local _,_, sNeedNick = string.find(sData, "^%S+%s%S+%s(%S+)")

Может это и не по спортивному, зато работает )

Автор: Setuper 16.3.2009, 21:43

нет ты неверно понял.

Строка

Код
sNeedNick = sData:match"(%S+) %S+$"
отвечает за команду
Код
$ConnectToMe Nick ip:port


Строка
Код
sNeedNick = sData:match"(%S+)|$"
отвечает за команду
Код
$RevConnectToMe Nick1 Nick2|


Хотя я перепутал их слегка местами:
Код
local sNeedNick = sData:match"(%S+)|$"
if not sNeedNick then
  sNeedNick = sData:match"(%S+) %S+$"
end


Вот так будет работать

А то, что ты предлагаешь работать будет неправильно, помеха всему - наличие в команде $RevConnectToMe символа | на конце

Автор: ycaTblu 17.3.2009, 6:30

Да, действительно, в моем варианте sNeedNick получат не корректно.
Вопросы: Символ | в конце строки в sData всегда присутствует? Эту строку формирует клиент? Все ли клиенты добавляют этот символ? Где можно почитать?

Автор: Setuper 17.3.2009, 10:49

Символ | существует не во всех командах, но в большинстве.
Данный символ является символом протокола.
Подробнее читай тут: http://mydc.ru/topic915.html

Автор: ycaTblu 17.3.2009, 17:11

То что тут http://mydc.ru/topic915.html написано является эталоном или есть отклонения в разных вариациях, версиях или тп?

Попробовал сделать так:

SRArrival = function (user, data)
Core.SendToUser(user,"<"..CofACfg.Bot.."> DATA:".. data)
end

Есть два юзера. Во всех вариантах (A-P) кроме одного функция "молчит".
Только когда юзер P делает посковый запрос, юзер А отвечает ему вот этим $SR Вася Файл.txt[0x05]437 3/4[0x05]МойХаб (10.10.10.10:411)[0x05]Петя|

Как смоделировать эту ситуацию ?

Цитата
Ответ на активный поиск:

Код
$SR Вася Файл.txt[0x05]437 3/4[0x05]МойХаб (10.10.10.10:411)|

Автор: Setuper 17.3.2009, 19:05

Плохо читаешь.

Цитирую одно из предложений:

Цитата
Если команда $Search была послана от пассивного пользователя, то команда $SR должна быть возвращена хабу (через TCP).


То есть через хаб идут только результаты пассивного поиска (пассив - пассив опять же невыполнимая операция).

Результаты активного поиска идут напрямую от клиента к клиенту. Соответственно "ответ на активной поиск" - это написано для понимания взаимодействия между клиентами.

А вообще говоря, причем тут ответы на поиск, когда речь идёт о скачивании?

Автор: ycaTblu 17.3.2009, 19:16

Все спасибо, теперь до меня дошло как организован обмен.

Автор: valdis73 4.4.2009, 15:51

Огромное спасибо!! Скрипт нажный и пашет тьфу тьфу безотказно только вот с описаниями ничего не вышло а очень нужно. Не подскажешь как создать описание сетей?

Автор: Инкогнито 10.5.2009, 3:57

кстати, замечание дельное на счет поиска пассив to пассив, только я не понял тут что вы говорили толком, а точнее куда вписывать то что писал сетапер или где и что заменить тем что он написал. можно подробнее пожалуйста, а то никак не могу понять, заранее благодарен

Автор: Trans 5.6.2009, 12:54

Объясните мне, зачем нужен лимит по шаре? К тому же непонятно из комментов скрипта и из сообщений темы, лимит чего и кого это. Лично я не нахожу применения лимита шары в любом виде при использовании данного скрипта на нашем хабе, посему - вопрос: как убрать использование лимита шары? Всё предыдущее из моих слов относится и к лимиту по количеству юзеров сетей...и тот же вопрос - как убрать их из скрипта?
Не хочется копаться в чужом сложном скрипте, а то в итоге можно получить одни глюки и в конце концов всё равно придётся тут же и спрашивать, так что хотелось бы получить ответ от автора скрипта.

Автор: Nickolya 5.6.2009, 13:57

Делаешь пустыми таблицы tNetworkShareLimit и tNetworkUsersLimit, все! Функции добавлены в скрипт по запросу пользователей.

Код
    -- Таблица с ограничениями по шаре ([номер сети] = макс. шара в байтах):
    tNetworkShareLimit = {
    }

    -- Таблица с ограничениями по количеству ([номер сети] = макс. кол-во юзеров):
    tNetworkUsersLimit = {
    }

Автор: Trans 5.6.2009, 14:39

2Nickolya:

Да я уже вроде решил вопрос - просто поставил очень большие значения для нашей сети. У меня город и область - одна сеть (для скрипта), другая - вся внешка.

Кстати, спасибо тебе за скрипт!

Автор: Nickolya 5.6.2009, 21:11

Лучше сделай как я советовал, так уменьшается нагрузка на скрипт. Пожалуйста big_smile.gif

Автор: Trans 23.6.2009, 18:46

2Nickolya:

Не хочет искать у пассивов, если скрипт включен.
Те способы исправления, обсуждавшиеся несколькими сообщениями выше Setuper'ом и ycaTblu, не помогли. Может, я не так и не туда вставил-заменил, может, не совсем корректны советы, но поиска как не было, так нет. Народ валом валит с жалобами на поиск, как включаю скрипт Отключил. Отстали.
Может, что-то исправишь в скрипте? А то не очень правильно из скрипта делать конструктор "сделай сам".
Извини.

Автор: Trans 25.6.2009, 10:01

Наконец-то оно случилось - скрипт теперь не блокирует поиск!
По совету автора скрипта Nickolya удалил функцию SRArrival.
И всё. Этого хватило. А все остальное оставил как есть, в авторском варианте.

Автор: FallenAngel 25.6.2009, 16:46

Цитата(Nickolya)
function SRArrival(curUser, sData) -- не отсылаем ответы на поиск юзеру если он не из своей подсети

Хм.. Получается, что юзер будет искать по всем сетям? И при этом пассивы тож смогут у всех все искать?big_smile.gif

Автор: Setuper 25.6.2009, 16:54

Просто видимо эта функция немного неправильно работает)))
Корректнее конечно же было бы её переписать, а не удалять))

Автор: FallenAngel 26.6.2009, 7:31

Ну лично я ее просто закомментировал. Можешь переписать как надо?big_smile.gif

Автор: Инкогнито 26.6.2009, 9:52

ну так что, что посоветуете то с поиском, если исправить - то как именно, если удалять или закоментировать, то тож подробнее пожалуйста

Автор: Trans 26.6.2009, 20:25

Посмотри в моем сообщении, - я удалил и все работает как надо. А что до закомментирования - это одно и то же, что и удаление. Я тебя сразу не смог поймать, чтоб сообщить о решении проблемы.

Автор: FBR 25.8.2009, 12:16

По умолчанию в скрипте "Разделение сетей ВЫКЛючено, вы можете качать у ВСЕХ пользователей!"

а как зделать чтобы было наоборот было включено?

Автор: Trans 25.8.2009, 13:18

Наоборот, по умолчанию по идее включено. Но, тем не менее, в первом сообщении есть оба варианта скрипта.
Интересно, ты сразу с конца начал читать тему?

Автор: FBR 25.8.2009, 13:20

Да сорри точно, начал читать с конца , потом вернулся и сначала )))

Как можно убрать с команд "Показать мой статус" и "Показать информацию по сетям" что бы невыдовался весь диапозон ip ?
а то уж больно большой список диапозонов выдается в чат.

Т.е. не так :
[18:17:01] <Security> *** UFNM, ваш идентификатор сети - #3 (Telekom). Диапазоны вашей сети: 111.111.111.111-222.222.222.222, 333.333.333.333 и т.д.*. Разделение сетей ВКЛючено, вы можете качать у пользователей только в перделах своей сети! Показ сообщений о разделении сетей ВКЛючен. Чтобы изменить статус разделения или отправки сообщений, воспользуйтесь меню.


а вот так :
[18:17:01] <Security> *** UFNM, ваш идентификатор сети - #3 (Telekom). Разделение сетей ВКЛючено, вы можете качать у пользователей только в перделах своей сети! Показ сообщений о разделении сетей ВКЛючен. Чтобы изменить статус разделения или отправки сообщений, воспользуйтесь меню.

Автор: Trans 25.8.2009, 17:17

Найди вот эту функцию:
function MakeStatusMsg(curUser)
и в теле функции закомментируй (то есть, поставь по 2 знака тире -- спереди) 3 строки эти:

Код
    if iUsersNetwork ~= 0 then
        sMsg = sMsg..". Диапазоны вашей сети: "..tDiaps[iUsersNetwork]
    end

Автор: FBR 25.8.2009, 17:53

Цитата(Trans @ 25.8.2009, 18:17) *
Найди вот эту функцию:
function MakeStatusMsg(curUser)
и в теле функции закомментируй (то есть, поставь по 2 знака тире -- спереди) 3 строки эти:
Код
    if iUsersNetwork ~= 0 then
        sMsg = sMsg..". Диапазоны вашей сети: "..tDiaps[iUsersNetwork]
    end

Помогло

на команду "Показать мой статус" сработало, диапозоны ip спрятались, а вот на команду "Показать информацию по сетям"("Информация о разделяемых сетях хаба") все так же выводиться длинющий диапозон ip

Автор: Trans 25.8.2009, 18:03

А зачем ты на эту команду нажимаешь? big_smile.gif Она именно для этого и существует, чтоб показать диапазоны.

Автор: FBR 25.8.2009, 18:06

Цитата(Trans @ 25.8.2009, 19:03) *
А зачем ты на эту команду нажимаешь? big_smile.gif Она именно для этого и существует, чтоб показать диапазоны.


Так то оно так, но зачем новичкам засорение чата длиннющим списком диапозонов ip? Им и так тяжко разобраться а тут еще пару страниц цыфры вылезут ops.gif

Нельзя ли чтоб отоброжалось типа "ваш идентификатор сети - #2 (Telekom). " и все ?

Автор: Trans 25.8.2009, 18:14

Закомменти отправку этой команды юзерам и всё. Зачем человеку смотреть по команде то, что он и так знает?
Либо ройся в скрипте и закомменти участки, отвечающие именно за вывод списка именно при данной команде.

Автор: FBR 25.8.2009, 18:28

Цитата(Trans @ 25.8.2009, 19:14) *
1.Закомменти отправку этой команды юзерам и всё. Зачем человеку смотреть по команде то, что он и так знает?
2.Либо ройся в скрипте и закомменти участки, отвечающие именно за вывод списка именно при данной команде.


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

Автор: whuru 5.9.2009, 21:48

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

Автор: Trans 1.11.2009, 9:49

Вот на всякий случай кладу этот же, но урезанный до минимума, скрипт...
Для тех, у кого возникли проблемы с работой скрипта в *nix'ах по той или иной причине, а разделение сетей необходимо.
Поиск-скачивание невозможно между сетями намертво, никакого меню нет.
При входе юзеру отправляется сообщение о разделении сетей и возможности качать только в пределах своей сети (текст напишете сами, как найдете нужным)

Перезалил.
Исправил кое-что мелкое (хотя из-за этого мелкого мог работать неправильно)

 NetworkSeparation_v1.3b_API_2_by_Nickolya_cuted.lua ( 4.5 килобайт ) : 21
 

Автор: Инкогнито 10.2.2010, 3:00

по последнему скрипту от Trans, задумка правильная, вот только с сообщениями при заходе хотелось бы чтобы не то что сам написал а так чтобы идентифицировалась сеть, т.е. как ранее, Ник, идентификатор сети с ее названием и далее то что качать можно только в пределах своей сети, сам пытался сделать, чего-то не получилось, так что если кто подскажет как сделать, буду признателен.

Автор: Ольга 7.4.2010, 21:46

Можете вот мне сказать доступным мне языком что нужно отредактировать в скрипте, что бы можно было искать пассивам.

Автор: Trans 8.4.2010, 13:17

2Ольга:

Удали из скрипта функцию SRArrival и строку под функцией:
UDPSRArrival = SRArrival -- тоже удали.

Автор: Ольга 8.4.2010, 21:15

Я комментирую вот это

Код
--function SRArrival(curUser, sData)    -- не отсылаем ответы на поиск юзеру если он не из своей подсети
--    local _,_, sNeedNick = string.find(sData, ".*(%S+)")
--    local iNeedUsersNetwork = tSeparatedUsers[sNeedNick]
--    if iNeedUsersNetwork then
--        if tOffed[curUser.sNick] then
--            return
--        end
--        local iUsersNetwork = tSeparatedUsers[curUser.sNick]
--        if iNeedUsersNetwork ~= iUsersNetwork then
--            return true
--        end
--    else
--        return true
--    end
--end
--UDPSRArrival = SRArrival

и после этого у меня благополучно никто на хабе не может ни к кому соединится и искать тоже. Скрипт вырубаешь - скачка начинается

Автор: Trans 8.4.2010, 21:24

Странно, у меня да и у других работает.
Покажи сюда полное название своего скрипта.
Можешь просто сказать, какой скрипт в списке из первого сообщения темы....номер сверху вниз.
Хотя вряд ли это имеет значение.

Автор: Ольга 8.4.2010, 22:28

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

 NetworkSeparation_v1.3b___API_2_____by_Nickolya___.lua ( 15.34 килобайт ) : 1
 

Автор: Trans 8.4.2010, 23:07

1. Попробуй так: замени строки 242 и 243 на эти 2 строки:

Код
            tIPSeparation[i][k]["sFrom"] = CountIP(l.sFrom)
            tIPSeparation[i][k]["sTo"] = CountIP(l.sTo)

И проверь работу скрипта.
2. Если не прокатит (хотя это нужно в любом случае сделать), тогда в таблице с диапазонами сетей оставь только сеть 1. Сеть номер 2 практически равна сети номер 0 (то есть, любой диапазон, не входящий в сеть номер 1). Просто закомменти вторую сеть.
И ещё - исправление (удаление функции SRArrival) в первом моем совете остаётся в силе.

Автор: Ольга 9.4.2010, 16:56

Спасибо, попробую.

Автор: RAND(i)M 24.8.2010, 18:57

конечно, это основной скрипт для "полулокальных" хабов, у себя реализовал так, что разделение сетей и соответственно флаг отправки об этом работает только у локального диапазона, а вследствие, заодно и ведёт статистику пользователей с локалки, очень бы хотелось видеть такую реализацию руками мастера ибо уверен, что понаписал лишнего...

Автор: Nickolya 24.8.2010, 19:58

А можно более развернуто, что надо сделать? И как реализовано у вас, и почему лишнее? big_smile.gif Простите за мою "непонятливость"...

Автор: RAND(i)M 25.8.2010, 5:54

В общем, вот, сам сделал то, что хотел:
 Network_Separation_1.3d_API2.lua ( 17.05 килобайт ) : 11

API 2
Отличия от версии Nickolya:
- Разделение сетей, а так же сообщения и меню только для пользователей локалок, юзеры с внешки сидят как ни в чём не бывало.

Автор: Алексей Р 4.11.2010, 19:26

[19:19] Синтаксис ..._v1.3b___lua_5.1_____API_1_____by_Nickolya___1.2.lua:235: attempt to concatenate global 'sScripstPath' (a nil value)

Автор: Ksan 4.11.2010, 20:06

Алексей Р, попробуй это - в самом начале скрипта найди строку:

Код
    sBotPath = "NetworkSeparation\\"

и исправь её так:
Код
    sBotPath = "NetworkSeparation/"

Если у тебя Птока на линуксе, то, возможно, именно в этом ошибка (в путях линукса нужно слэш писать с наклоном вправо, и один, а не 2)

Автор: Nickolya 4.11.2010, 20:12

Алексей Р, очень информативно... Какая ОС, птока, скорее всего ты вообще не ту версию скачал. Ksan, у него скрипт под 1 апи выдает ошибку, а птока с этим апи не выпускалась для никсов.

Автор: Ksan 4.11.2010, 20:15

Ну я не вижу, под каким он АПИ сидит. В сообщении не написано. Ответил из того, что имееется.

Автор: Артём 4.11.2010, 20:21

Ksan, написано в сообщение... _v1.3b___lua_5.1_____API_1_____by_Nickolya___1.2.lua:235 big_smile.gif

Автор: Ksan 4.11.2010, 20:26

Оу, точно.. :( Уже успел привыкнуть, что все на АПИ 2, а тут вылез кто-то с АПИ 1, не заметил.

Автор: MARVELtm 1.12.2010, 20:59

Не знал куда написать, так что! Может есть скрипт, не навороченный, а просто что бы все было:

имя_сети1 - диапозон или отдельные адреса
имя_сети2 - диапозон или отдельные адреса
.......
имя_сетиn - диапозон или отдельные адреса

1. имя сети приписывалось в начале описания в [] (лучше всего перед ником в списке)
2. имя сети приписывалось перед ником при отправки сообщения

Перенесите если что не так в заказ скриптов!

Автор: Alexey 1.12.2010, 23:36

    • Cкриптов модификации описания на форуме море. Нужно лишь у поиска поспрашивать, например http://mydc.ru/ipb.html?act=Search&CODE=show&searchid=deb1d7b303c56f1bb4a8400035d74590&search_in=posts&result_type=topics&highlite=%2B%EF%F0%E5%F4%E8%EA%F1+%F1%E5%F2%E8.
    • Приписывать диапазон в списке ПЕРЕД ником скриптом - очень плохая идея. Уж лучше заставлять пользователей самих ставить нужный префикс.
  1. Тоже плохая идея: удваивает число пользователей в списке, неверная обработка команд контекстного меню чата и т.п.

Автор: MARVELtm 2.12.2010, 8:39

Цитата(Alexey @ 1.12.2010, 23:36) *
    • Cкриптов модификации описания на форуме море. Нужно лишь у поиска поспрашивать, например http://mydc.ru/ipb.html?act=Search&CODE=show&searchid=deb1d7b303c56f1bb4a8400035d74590&search_in=posts&result_type=topics&highlite=%2B%EF%F0%E5%F4%E8%EA%F1+%F1%E5%F2%E8.
    • Приписывать диапазон в списке ПЕРЕД ником скриптом - очень плохая идея. Уж лучше заставлять пользователей самих ставить нужный префикс.
  1. Тоже плохая идея: удваивает число пользователей в списке, неверная обработка команд контекстного меню чата и т.п.



Все это не то! Все скрипты я облазил до написания поста!
Спасибо за ответ. Пересмотрел все варианты и вот, последнее:
При входе в хаб , автоматически (выбирая из диапозонов) приписывал [название_сети].
Как скрипт присваивания пола, толька там выбирать нада м или ж, а тут автоматом исходя из диапозона ip.

Автор: Nickolya 2.12.2010, 15:21

MARVELtm, манипуляции с описанием ни к чему хорошему не приводят, но если тебе надо - ищи по форуму нечто вроде

Цитата
Description_Network

Автор: Herurg 28.5.2011, 14:13

Привет всем, скрипт почему то критует.. на строчке 291
/// /Network_Separation.lua:291: attempt to concatenate field 'sTo' (a nil value) ///
Строчка:

Код
            tDiaps[i] = tDiaps[i]..l.sFrom.."-"..l.sTo..", "


Помогите решить проблему, вроде бы ошибок с моей стороны нету, скрипт не дополнял.


Странно но вопрос решён, ошибка была в маске подсети.

Проблема осталась в следующем:
Тому у кого скачиваешь приходит сообщение вида:
Код
Core.SendToUser(curUser, "<"..sBot.."> *** "..curUser.sNick..", ваши сети разделены, поэтому вы не можете качать с "..sNeedNick.."!")

Как сделать что бы приходило сообщение тому кто скачивает а не тому у кого скачиваешь ?

Скачал этот скрипт: NetworkSeparation_v1.3.1___API_2_____by_Nickolya___.lua ( 15.55 килобайт ) Кол-во скачиваний: 522

Автор: Setuper 28.5.2011, 14:26

Так ведь нельзя определить кто скачивает или с кого скачивает.
Хаб только соединяет пользователей, а кто с кого качает хаб не знает.

Автор: Herurg 28.5.2011, 14:29

эм.. тогда не понимаю смысла этой строчки. Зачем знать тому кто ограничил скачку только в своём диапазоне ?
Хотя опять же, список ограничивших есть ...

Автор: van21 30.8.2011, 20:20

установил скрипт всех выкинуло с хаба!

Помогите разобраться плиз!!!
У меня 1 локальный ип и 2 впн (выделеный)
На хаб могут зайти и по локалке и по инету по разным ип.
Проблемма в скачке файлов как отключить возможность скачивать файлы тем кто с инета соеденился!

Даже можно отключить тогда для всех но как я не знаю поджскажите плиз!

И где мне посмотреть у себя таблицу с сетями и их инетрвалами ?

Автор: Ksan 30.8.2011, 20:39

Вбиваешь в один список (сеть №1) диапазоны IP, которые есть в вашей локалке. Вот пример:

Код
    tIPSeparation = {
        [1] = {  -- тут (ниже) все диапазоны - "свои", кто в них не попадает - "чужие"
            
            {["sFrom"] = "31.24.24.0", ["sTo"] = "31.24.31.255"},
            {["sFrom"] = "31.31.168.0", ["sTo"] = "31.31.175.255"},
            {["sFrom"] = "217.70.119.194", ["sTo"] = "217.70.119.194"},
            {["sFrom"] = "217.79.56.0", ["sTo"] = "217.79.56.255"},
            
            {["sFrom"] = "192.168.0.0", ["sTo"] = "192.168.255.255"},  --- это для домашней сети компа с хабом
            {["sFrom"] = "10.0.0.0", ["sTo"] = "10.255.255.255"},  --- это локалка
        },

Другие сети не заполняешь, их даже можно просто закомментить.
Далее скрипт работает по принципу - кто не в нашем списке, те чужаки, и с них свои не скачают.
Только надо почаще проверять, не изменились ли локальные диапазоны (они могут расшириться, сузиться, могут появиться другие диапазоны и т.д.)

Автор: van21 30.8.2011, 20:49

Спасибо Ksan т.е другими словами кто не в списке те не могут качать а зайти на хаб могут?
И что значит закомментить плиз другие сети.
И сложно мне следить за диапазонами ип я бы хотел просто отключать скачку всем 100% т.к это не самое главное на хабе у нас мы просто собираемся для игр по сети а скачать могут и с другого хаба.

Автор: Ksan 30.8.2011, 21:06

Хмм, что за админ, который не знает, что такое "закомментить"... :(
Это означает - сделать строку скрипта (или несколько строк) неработающими, превратить их из кода в простой текст (в комментарий)...вот пример:

Код
            {["sFrom"] = "217.70.119.194", ["sTo"] = "217.70.119.194"},  -- это комментарий к строке
--            {["sFrom"] = "217.70.119.194", ["sTo"] = "217.70.119.194"},  -- а эта строка уже вся является комментарием (закомментена)

В первой строке коммент в конце строки после двух черточек (обрати внимание на эти чёрточки, это важно!), а вторая строка вся полностью закомментена теми же двумя счерточками спереди...то есть, если в строке есть две (или больше двух) вплотную стоящие чёрточки (тире), то всё, что после них (до начала следующей строки), считается комментарием и скриптом игнорируется.

Автор: van21 30.8.2011, 21:18

Ну извините я конешно не силен в скриптах все черпал у вас тут, я скорее всего организатор поэтому беспокоюсь о выходе хаба в инет мы всегда в локалке были. И трафик у многих лемит. А если не отключить скачку то возникнут проблеммы.
И вот поробуйте зайти я сам точно не знаю некоторые могут зайти а некоторые нет вот ип 95.141.230.45

Автор: Ksan 30.8.2011, 21:38

Повторюсь и тут:

Код
    tNetworkShareLimit = {
---        [0] = 1073741824,         -- 1 ГБ (1024^3), это все юзеры, ip которых не прописаны в таблице
---        [2] = 1099511627776,    -- 1 ТБ (1024^4)
    }

    tNetworkUsersLimit = {
---        [0] = 0,    -- это лишь пример, тут мы запрещаем вход всем тем, чей ip не описан в таблицах сетей
---        [1] = 40,
---        [3] = 2,
    }

Сделай как тут - комменты спереди...тогда не будет ограничений и выкидышей/незапусков.
И не обращай внимания на то, что написано после комментирующих чёрточек впереди, это не имеет значения, пока закомментены.

Автор: van21 30.8.2011, 22:01

Все спс заработало!
Выдал ваш идентификатор сети - #0 (Общая сеть). Разделение сетей ВКЛючено, вы можете качать у пользователей только в перделах своей сети! Показ сообщений о разделении сетей ВКЛючен. Чтобы изменить статус разделения или отправки сообщений, воспользуйтесь меню.
а вот как мне автоматом их делить по сетям диапазон где взять мне я не знаю tire.gif

Автор: Ksan 30.8.2011, 22:10

Это уже тебе надо ориентироваться в сетях вашей местности...наверно, должен быть сайт какого-нибудь вашего провайдера, где будет таблица ваших сетей.
У нас в городе (области) есть. Там больше http://mydc.ru/r/?http://tomsknet.ru/nets
Ищи у себя тоже.

Автор: van21 30.8.2011, 22:43

А можно всех обьеденить в 1 сеть и запретить скачку в этой сети или всех сделать чужими ?
Дипазоны не спасут в нашей сети есть с 2-мя ип (лок+впн) ип и с 1-им выделеным для локалки и инета.

Автор: Ksan 31.8.2011, 0:14

Ну узнай, в какой диапазон входят ВПН-адреса и внеси в тот же список "своих"..
Так же поступи с выделенками. Они же не произвольные IP, а входят в какие-то определённые диапазоны, вот узнай и занеси в в таблицу.
А диапазоны можно узнать через сервера WHOIS. Запрашиваешь какой-то айпи и сервер тебе выдаст, в какой диапазон он входит.

Автор: van21 31.8.2011, 9:15

вот что нарыл пока у себя:
95.141.224.0 - 95.141.231.255 инет
31.148.0.0 - 31.148.127.255 лок
10.0.0.0 - 10.255.255.255 лок
46.187.0.0 - 46.187.127.255 лок
213.88.56.0 - 213.88.127.255 инет
172.16.0.0 - 172.31.255.255 лок
вот как я их разметил
-- Таблица с сетями и их инетрвалами:
tIPSeparation = {
[1] = {
{["sFrom"] = "10.0.0.0", ["sTo"] = "10.255.255.255"},
{["sFrom"] = "31.148.0.0", ["sTo"] = "31.148.127.255"},
{["sFrom"] = "31.148.0.0", ["sTo"] = "31.148.127.255"},
{["sFrom"] = "46.187.0.0", ["sTo"] = "46.187.127.255"},
{["sFrom"] = "172.16.0.0", ["sTo"] = "172.31.255.255"},
},
[2] = {
{["sFrom"] = "95.141.224.0", ["sTo"] = "95.141.231.255"},
{["sFrom"] = "213.88.56.0", ["sTo"] = "213.88.127.255"},
},
[3] = {
{["sFrom"] = "127.0.0.0", ["sTo"] = "127.255.255.255"},
},
}

-- Необязательное (но желательное) описание сети:
tNetworkNames = {
[0] = "Общая сеть",
[1] = "Локальная сеть",
[2] = "инет Чебнет",
[3] = "инет",



Все разобрался вроде но теперь хочу отключить выбор отключения разделения сетей пользователям, чтоб только админ мог этим управлять.
Как это сделать а то они могут сами отключить через меню.

Автор: mariner 31.8.2011, 10:51

Тут есть подоная версия скрипта в начале темы. И да, в 3ей сети у тебя ваще не то.

Автор: van21 31.8.2011, 11:06

Nickolya - Выкладываю версию 1.3b и 1.3.1. В первой исправлена 1 ошибочка в реализации, во второй по умолчанию разделение сетей у пользователя выключено!
Я скачал 1.3b
В 3 сети ни че не менял просто не знай какой общий диапазон для инета поставить.
Может просто сделать меню строки видимым для админа тока как не знаю?
+"..sSeeWhoOffedCmd.."|")
Core.SendToUser(curUser, "$UserCommand 0 3")
Core.SendToUser(curUser, "$UserCommand 1 3 "..sMenuWay.."Включить/выключить разделение сетей$<%[mynick]> +"..sOn_OffCmd.."|")

Автор: Ksan 31.8.2011, 16:56

1. van21, ты какой-то странный...всё время городишь одно на другое.
2. Вопрос - чего ты хочешь - чтоб первая сеть не могла качать из второй сети? или ещё что-то?
3. И что за третья сеть? 127.0.0.1 - это вообще-то комп, где стоит хаб. Удали эту сеть.
4. Насколько я вижу, первая сеть уже вобрала в себя все твои локальные диапазоны.
А во вторую сеть у тебя что за диапазоны попали?
Я же писал раньше тебе - все диапазоны, которые беспроблемно могут качать друг с друга, должны находиться в одной сети (таблице), а всё, что не вошло в эту таблицу - не надо заносить в списки. Они по умолчанию будут в сети №0.

Несколько сетей нужно организовывать только в том случае, когда на ваш хаб зходят люди из нескольких провайдеров, которые между собой "воюют", то есть, за скачивание между ними берутся деньги, вот тогда и необходимо организовать несколько разных сетей.
А если у тебя проблема только между локалью (где силят все ваши местные юзеры) и интернетом, то достаточно прописать в скрипте только сеть №1.

Автор: van21 31.8.2011, 19:50

Я просто не понятно наверно обьснил.
Хаб открыт для входа с интернета я думаю конешно с разных провайдеров и с разыми тарифами.
Я внес в список только локальные 1 и выделеные адреса 2 нашего провайдера а 3 там был в скрипте просто я думал нужен он.
Остальные все попадают в 0 я так понимаю.
Но меня беспокоит только возможность отключения самими юзерами разделения сетей через меню хаба вот что самое главное я хотел отключить эту возможность им!Чтобы не могли они отключить ее!А как это сделать я не знаю, все остальное работет отлично! secret_smile.gif

Автор: Ksan 31.8.2011, 20:00

1. Тогда, как я и говорил, все "свои" диапазоны (локалка + выделенка) держи в одной таблице. И больше никаких таблиц диапазонов.
2. Чтоб не могли отключить разделение сетей, как вариант, можешь скрыть от юзеров из меню строку отправки команды.
Скажем, так:

Код
--    Core.SendToUser(curUser, "$UserCommand 1 3 "..sMenuWay.."ВКЛ./ВЫКЛ. разделение сетей$<%[mynick]> +"..sOn_OffCmd.."|")

Автор: van21 31.8.2011, 20:08

Вот то что я хотел спс большое!!!

Автор: van21 10.9.2011, 13:06

А возможно разделить общюю сеть для россии на диапазоны?
Например: у нас 3 провайдера скрипт их определяет как общюю сеть а если я знаю диапазоны этих провадеров можно ли их разделить чтоб на хабе в местоположении пользователей выводились кто с какого провайдера сидит на хабе?

Автор: Ksan 10.9.2011, 16:30

van21, для этого есть другие, специально для этого сделанные, скрипты. Я не знаю ссылки, так что придется искать тебе самому на форуме. Возможно, в разделе скриптов с MySQL...возможно.

Автор: and_luk 24.6.2015, 6:13

Есть проблема с данным скриптом.
PtokaX стоит на debian'e
Как в конфиге указать конкретный путь где лежать файлам а то фигня выходит.

Вот допустим я поправлю:

Код
- Папка бота (если ее нет, она создастся):
    sBotPath = "NetworkSeparation//"

Код
- Папка бота (если ее нет, она создастся):
    sBotPath = "NetworkSeparation/"


И в обоих вариантах, он создает каталог с названием \home\PtokaX\scripts\NetworkSeparation в каталоге PtokaX а не scripts.

Если запускаю по default то, он создает два файла в прямо в корне PtokaX - вот с такими именами:
\home\PtokaX\scripts\NetworkSeparation\OffedMsgUsers.tbl
\home\PtokaX\scripts\NetworkSeparation\OffedUsers.tbl


Делаю так:
Код
- Папка бота (если ее нет, она создастся):
    sBotPath = "/NetworkSeparation"


Сразу при запуске показывает ошибку.

Код
root@dc:/home/PtokaX# ./PtokaX
sh: 1: md: not found
sh: 1: md: not found
mkdir: невозможно создать каталог «\\home\\PtokaX\\scripts\\/NetworkSeparation»: Нет такого файла или каталога
PtokaX DC Hub 0.4.1.2 running...


Подскажите пожалуйста, как сделать чтобы он работал только в каталоге scripts

P.S. Под Windows таких проблем нету, но под виндой работать.... extreme_sexy_girl.gif

---UPD---

Решение найдено.

В самом файле скрипта, в 98 строке:
Код
sScripstPath = Core.GetPtokaXPath():gsub("/", "\\").."scripts\\"

заменить на
Код
sScripstPath = Core.GetPtokaXPath():gsub("/", "/").."scripts/"