скрипт приписывает написанию юзеров название сети. переведите пожалуйста под api2
Неправильный, на мой взгляд, подход. Ресурсоемкий слишком. Проще при входе проверять юзера на адрес, и не пускать, пока в инфо (или в нике) не напишет требуемое.
Автор: e-ploko 6.8.2008, 15:31
Цитата(Fodin @ 6.8.2008, 20:29)
Неправильный, на мой взгляд, подход. Ресурсоемкий слишком. Проще при входе проверять юзера на адрес, и не пускать, пока в инфо (или в нике) не напишет требуемое.
Да у меня 13 сетей на хабе сидит. Между некоторыми платный трафик, между другими бесплатный. Описание необходимо чтобы юзер знал с кого тянет...
Автор: Fodin 6.8.2008, 15:45
Цитата(e-ploko @ 6.8.2008, 23:31)
Да у меня 13 сетей на хабе сидит. Между некоторыми платный трафик, между другими бесплатный. Описание необходимо чтобы юзер знал с кого тянет...
А у нас в сети скорость между подсетями совсем разная. Если в одной подсети с юзером сидишь - 100Мбит, если в разных - плавает от низкой до очень низкой. Поэтому я каждому юзеру прилепил префиксы именно так, как написал выше. Вот кусок кода: function UserConnected(sUser) if (string.sub(sUser.sIP, 1, 8) == "93.188.8") then -- если сеть 93.188.8*.* if (string.sub(sUser.sIP,9,9)=="0" and string.sub(sUser.sNick,1,3)~="[a]") then --если подсеть 93.188.80.* Core.SendToNick(sUser.sNick, "Ник для адреса "..sUser.sIP.." должен начинаться с префикса [a], например: [a]"..sUser.sNick..".") Core.Disconnect(sUser) end end end И все вопросы решились махом. Все все видят. А описание мало поможет не качать с платных. Когда клиент находит альтернативные источники, ему плевать, какое у юзера майинфо. Тут либо юзеры должны сами фильтры ставить по адресам, либо писать скрипт, который бы давал возможность поставить запрет качать у платников.
Автор: e-ploko 6.8.2008, 18:26
Цитата(Fodin @ 6.8.2008, 20:45)
А у нас в сети скорость между подсетями совсем разная. Если в одной подсети с юзером сидишь - 100Мбит, если в разных - плавает от низкой до очень низкой. Поэтому я каждому юзеру прилепил префиксы именно так, как написал выше. Вот кусок кода: function UserConnected(sUser) if (string.sub(sUser.sIP, 1, 8) == "93.188.8") then -- если сеть 93.188.8*.* if (string.sub(sUser.sIP,9,9)=="0" and string.sub(sUser.sNick,1,3)~="[a]") then --если подсеть 93.188.80.* Core.SendToNick(sUser.sNick, "Ник для адреса "..sUser.sIP.." должен начинаться с префикса [a], например: [a]"..sUser.sNick..".") Core.Disconnect(sUser) end end end И все вопросы решились махом. Все все видят. А описание мало поможет не качать с платных. Когда клиент находит альтернативные источники, ему плевать, какое у юзера майинфо. Тут либо юзеры должны сами фильтры ставить по адресам, либо писать скрипт, который бы давал возможность поставить запрет качать у платников.
Сети разделены силами самого хаба. Но адреса частенько меняются. Народ юзает простой клиент дс, который не ищет альтернативы. Кроме того до этого скрипта на хабе чуть ли не каждые 3 минуты был вопрос: "А ты с какой сети...?", или "а как проверить за деньги или нет?.." Так что в моем случае без него никак ;) вот и прошу умельцев.. Может кому еще пригодится...
Короче ребят начитавшись мануалов перевёл сам ;) выкладываю свое творение со своими сетями.. Мб кому пригодится...
После 5 мин работы выкидывает вот такое чудо: Синтаксис D:\0.4.1.1\scripts\krs-ix.lua:62: attempt to concatenate field '?' (a nil value) Ребят подскажи или подправьть пожалуйста....
Автор: Fodin 7.8.2008, 15:24
Номер строки какой-то непонятный. Там ведь определение сетей еще идет.
Автор: e-ploko 7.8.2008, 16:01
Короче методом тыков сделал всетаки пришлось пожертвовать профилями юзеров...
В том скрипте, который через 5 минут ошибку у тебя выдает замени одно на другое. Сложно понять, что тут может быть непонятно. :-)
Автор: e-ploko 8.8.2008, 7:08
спасибо работает, только я не понял что решили два профиля дописанные ниже, у меня всего 4 профиля в птоке.
Автор: Инкогнито 15.8.2008, 2:47
хм, скриптик полезный, а есть что-то подобное чтобы на две сети диапазоны прописать, а на третью нет, но как-нить ее обовать и все, так сказать по умолчанию
тему вкурил, вопрос снят
Автор: Инкогнито 17.8.2008, 9:49
где-то что-то не так, некотрых пользователей определяет как из другой сети, хотя прописано что принадлежат другой или вообщене вписаны, диапазоны не пересекаются, проверял не единожды, по последнему скрипту еслив что вопросик
Автор: PRIZrak 17.8.2008, 18:03
Пользуюсь скриптом network_desc (для луа 5.1.2), пока проблем не заметил. Скрипт в описании выводит название сети. Нарыл его тута: http://mydc.ru/r/?http://forum.proc.ru (ветку, простите, не помню), автор вроде как тамошний обитатель Fox Mulder
Настройка:
TimeOverWrite = 60 -- time in second -- время в секундах до обновления описания юзера (чем оно больше, тем меньше траифка жрет хаб)
RangeDesc = { [1]="77.122.32.1-77.122.63.255-KPIX_seg1_dyn", [2]="82.144.195.1-82.144.196.255-KPIX_seg1_stat", [3]="82.144.203.1-82.144.203.255-KPIX_seg1_stat", [4]="77.123.200.1-77.123.207.255-KPIX_seg2_dyn", [5]="82.144.210.1-82.144.210.255-KPIX_seg2_stat" } -- Начало-Конец диапазона ИП-адресов и как их отображать в описании
InfoLog = "UserInfo/" -- Create this folder before starting the script -- не забыть создать папку с таким именем в папке со скриптами
if descript == nil then descript = "out" end -- как будут отображаться те, кто не попадают в указанный диапазон.
интересненько конечно, но разобрался, потанцевав с бубном так сказать - помогло, просто те диапазоны что не отображались корретно перенес в конец и измени порядковый номер, все ровно теперь работает, почему так произошло - не знаю
Автор: Perspect 12.10.2008, 23:32
Выклвдываю 3 скрипта определения сети, один из которых сейчас работает на моём хабе под PtokaX 0.3.6.0. Как бы прикрутить его под PtokaX 0.4.1.1 ? Я не могу перейти на 4 версию птохи именно из за отсутствия этого скрипта. Выручайте.
Пользуюсь скриптом network_desc (для луа 5.1.2), пока проблем не заметил. Скрипт в описании выводит название сети. Нарыл его тута: http://mydc.ru/r/?http://forum.proc.ru (ветку, простите, не помню), автор вроде как тамошний обитатель Fox Mulder...
Может есть такой же простой, как этот скрипт для PtokaX 0.4.1.1? Нужно ТОЛЬКО название сети в описании и всё! Пытался конвертировать этот - не работает :(
Автор: sergius 24.1.2010, 13:36
Можно принудительно добавлять тег пользователю в начало ника в зависимости от IP если все диапазоны извесны? Спасибо
Автор: Артём 24.1.2010, 15:34
Цитата(sergius @ 24.1.2010, 12:36)
...тег пользователю в начало ника в зависимости от IP ...
Prefix_API2.lua ( 2.04 килобайт )
: 45 Держи , свои диапазоны пропишешь сам
Изменять ник средствами хаба без вмешательства юзера нельзя никак, а если это и сделать, то это будет через з****цу и файлообмена с таким юзером не будет, так что забудь.
Автор: Setuper 24.1.2010, 16:17
Ник пользователя нельзя менять по протоколу, и вот почему: потому что по протоколу при входе клиент отсылает на хаб свой ник, а хаб должен подтвердить этот ник, и отправить клиенту команду $Hello с его ником. Если хаб отправит в команде $Hello какой-то другой ник, то клиент не будет отправлять на хаб прочие команды, пока не получит команду $Hello со своим ником. Получив команду $Hello со своим ником, клиент считает, что хаб клиента сопоставляет именно с этим ником, и клиент будет посылать этот ник во всех nmdc командах (где это нужно).
Финт ушами возможен в случае hex хаба, где при входе под чужим ником хаб не отключает пользователя, а добавляет к нику какое-то число, ОДНАКО клиенту хаб всё равно отсылает не измененный ник, а в списке пользователей отсылает ещё и измененный. Таким образом, хаб как бы имитирует существование двух пользователей на хабе. Для вас кажется, что хаб вам присвоил ник с цифрой, но для клиента это ни так. Повторяю, что такой финт ушами возможен только в случае если в списке находится и изменённый ник и реальный ник (получается как бы что под реальным ником на хабе находятся 2 пользователя, на самом деле так оно и есть ).