User Mode Fixer, API 2 | Исправление режима подключения пользователя |
Здравствуйте, гость ( Вход | Регистрация )
User Mode Fixer, API 2 | Исправление режима подключения пользователя |
15.1.2012, 20:02
Сообщение
#1
|
|
Освоившийся участник Группа: Пользователи Сообщений: 391 Регистрация: 4.11.2009 Из: Дом Пользователь №: 4 923 Спасибо сказали: 239 раз |
Название скрипта: User Mode Fixer
Версия скрипта: 2.05 Платформа: PtokaX Версия API: API2 Автор: Enyby Автор идеи: Meloun Библиотека: Для работы скрипта требуется библиотека Lua Socket Описание: Скрипт предназначен для исправления режима подключения пользователей. Подменяет нерабочий актив на пассив в поиске и запросах на соединение. Возможности скрипта: При подключении нового пользователя, если он актив, то проверяется доступность порта для соединения. Если порт не доступен, то хаб переводит клиента в режим переопределенного пассива. В этом режиме поисковые команды преобразуются в пассивные, а CTM в RCTM. При включении режима исправлений IP адресов и ников, скрипт исправляет команды с неверными данными. DDoS'еры получают DDoS на свой адрес, а обычные пользователи могут искать и качать даже с неверным внешним IP адресом и/или ненастроенном активе. Правда только как пассивы. Дополнительная информация:
Совместимость с другими скриптами:
TODO list
История версий v2.05:
v2.04:
v2.03:
v2.02:
v2.01:
v2.00:
v1.13:
v1.12:
v1.11:
v1.10:
v1.09:
v1.08:
v1.07:
v1.06:
v1.05:
v1.04:
v1.03:
v1.02:
v1.01:
v1.00:
UserModeFixer_v2.05.lua ( 45.42 килобайт ) Кол-во скачиваний: 245 Предыдущие версии
UserModeFixer_v2.04.lua ( 43.84 килобайт )
Кол-во скачиваний: 9 UserModeFixer_v2.03.lua ( 43.82 килобайт ) Кол-во скачиваний: 8 UserModeFixer_v2.02.lua ( 43.54 килобайт ) Кол-во скачиваний: 4 UserModeFixer_v2.01.lua ( 43.38 килобайт ) Кол-во скачиваний: 11 UserModeFixer_v2.00.lua ( 43.51 килобайт ) Кол-во скачиваний: 7 UserModeFixer_v1.13.lua ( 37.61 килобайт ) Кол-во скачиваний: 9 UserModeFixer_v1.12.lua ( 37 килобайт ) Кол-во скачиваний: 9 UserModeFixer_v1.11.lua ( 36.22 килобайт ) Кол-во скачиваний: 14 UserModeFixer_v1.10.lua ( 30.32 килобайт ) Кол-во скачиваний: 4 UserModeFixer_v1.09.lua ( 28.82 килобайт ) Кол-во скачиваний: 7 UserModeFixer_v1.08.lua ( 22.8 килобайт ) Кол-во скачиваний: 4 UserModeFixer_v1.07.lua ( 19.95 килобайт ) Кол-во скачиваний: 5 UserModeFixer_v1.06.lua ( 19.51 килобайт ) Кол-во скачиваний: 15 UserModeFixer_v1.05.lua ( 12.38 килобайт ) Кол-во скачиваний: 9 UserModeFixer_v1.04.lua ( 12.21 килобайт ) Кол-во скачиваний: 5 UserModeFixer_v1.03.lua ( 6.88 килобайт ) Кол-во скачиваний: 18 UserModeFixer_v1.02.lua ( 6.74 килобайт ) Кол-во скачиваний: 3 UserModeFixer_v1.01.lua ( 7.13 килобайт ) Кол-во скачиваний: 2 UserModeFixer_v1.00.lua ( 5.94 килобайт ) Кол-во скачиваний: 5 Предыдущие версии выложены, исключительно, для ознакомления с их исходным кодом. Это связано с тем, что я могу убрать из последней версии какой-то функционал, который вам может пригодится при написании своих скриптов. Если же вас интересует использование скрипта на своем хабе, настоятельно рекомендую использовать только последнюю версию. В старых версиях могут быть ошибки. P. S. Если у вас нет регистрации на этом форуме, а значит вы не можете качать вложения, то скачать этот скрипт, равно как и другие, можно по ссылке |
|
|
16.1.2012, 13:02
Сообщение
#2
|
|
Активный участник Группа: Пользователи Сообщений: 73 Регистрация: 5.1.2009 Из: Украина, г. Сумы Пользователь №: 1 684 Спасибо сказали: 0 раз |
Хотел бы попробовать данный скрипт но у меня хаб намного больше, можно че-то для 3+к онлайна?
|
|
|
16.1.2012, 13:15
Сообщение
#3
|
|
Освоившийся участник Группа: Пользователи Сообщений: 391 Регистрация: 4.11.2009 Из: Дом Пользователь №: 4 923 Спасибо сказали: 239 раз |
На данный момент ситуация такая - при старте он проверяет всех пользователей сразу. Если их много, могут быть проблемы с одновременным подключением ко всем. Во-первых, это много коннектов, а, во-вторых, в реализации на windows socket_select используется битовые значения одного байта, а их 256.
Но по сути ничего страшного не произойдет, может просто определит кому-то пассив принудительно. Можно попробовать таймаут увеличить. Например, с 3 секунд до 15-20. После старта может казаться что хаб завис, это нормально, оно пройдет. Сейчас неблокирующие сокеты. В случае блокирующих, подобные эффекты наблюдались на хабе с 160 пользователями. На данный момент скрипт работает на моем хабе, адрес которого в подписи. Сутки прошли - полет нормальный. Основная проблема скрипта - старт. Если не хотите тяжелого старта, закомментируйте всю функцию OnStartup, тогда скрипт будет работать только для нововошедших пользователей. После старта скрипт работает нормально и там проблем быть не должно. Если совем будет туго, то я уже говорил, что перепишу на пул сокетов с очередью. UPD: Даже если на старте определит как переопределенный пассив, достаточно будет перезайти этим пользователям и ситуация нормализуется. Еще одно. Скрипт потребляет неплохо память. На моем хабе это порядка 600 кб для 150 пользователей. Сейчас 130 кб на 116 человек. Прямой корреляции между числом пользователей и потреблением памяти не должно быть, скорее между числом переопределенных пассивов + нововошедших пользователей. Такж может влиять активность пользователей с переопределенным пассивом, так как скрипт берет на себя часть функций хаба. В будущем прикручу статистику, чтобы можно было смотреть сколько человек с каким режимом присутствует на хабе. |
|
|
16.1.2012, 13:50
Сообщение
#4
|
|
Белый Волк Группа: Пользователи Сообщений: 1 723 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 657 раз |
Enyby
Цитата Если не хотите тяжелого старта, закомментируйте всю функцию OnStartup, тогда скрипт будет работать только для нововошедших пользователей. Я думаю, это надо закомментить заранее в твоём скрипте уже в первом сообщении, или вовсе убрать и перезалить. Ведь особой необходимости нет, чтоб из-за этого скрипта перезапускать хаб, а при рестарте по иным причинам так и так всё пойдёт т ак, как при наличии функции OnStartup. Цитата Скрипт потребляет неплохо память. На моем хабе это порядка 600 кб для 150 пользователей. Сейчас 130 кб на 116 человек. Это фигня, а не память, у меня стоит скрипт, занимающий несколько десятков мб памяти (UserInfoF12_api2.lua). И ничего, хабу нипочём.Цитата [17:51:28] <MemBot> UserInfoF12_api2.lua = 57172.27 Kb.
|
|
|
16.1.2012, 13:59
Сообщение
#5
|
|
Освоившийся участник Группа: Пользователи Сообщений: 391 Регистрация: 4.11.2009 Из: Дом Пользователь №: 4 923 Спасибо сказали: 239 раз |
Это все мои догадки. Если действительно все будет так как я описал, кому надо - отключат. В следующей версии переделаю на пул. Больших хабов мало, а маленьких много. С маленькими все работает нормально.
|
|
|
16.1.2012, 19:56
Сообщение
#6
|
|
Участник Группа: Пользователи Сообщений: 38 Регистрация: 3.6.2009 Пользователь №: 3 496 Спасибо сказали: 6 раз |
Хм, вроде бы, работает, спасибо, полезная штука. Потестируем.
P.S. Еще бы тэг при этом менялся ;), а то смотришь список, видишь "активного" пользователя, а оно на самом деле... но это мелочи жизни)... |
|
|
17.1.2012, 2:00
Сообщение
#7
|
|
Освоившийся участник Группа: Пользователи Сообщений: 391 Регистрация: 4.11.2009 Из: Дом Пользователь №: 4 923 Спасибо сказали: 239 раз |
Я думал над этим. Но это лишние проблемы. Во-первых, нагрузка. Во-вторых, нельзя отменить отсылку $MyInfo, можно только отослать второй раз исправленный вариант. В-третих, скрипт станет резко несовместимым с любыми скриптами изменяющими $MyInfo.
Но если так нужно и вас устраивает - могу сделать, никаких особых проблем нет. PS Если у вас установлены скрипты которые фильтруют поиск, то они должны быть выше этого скрипта, иначе они работать не будут. Но тут тоже есть ограничения. Данные скрипты должны или запрещать обработку поиска, вернув true в функции или пропускать для дальнейшей обработки. Если же происходит поиск посредством скрипта в обход обработки хаба, то такой поиск не будет перехвачен и обработан этим скриптом. Тоже самое касается и комманд ConnectToMe (CTM) и RevConnectToMe (RCTM). Насчет последней есть еще одно дополнение. Все выше стоящие скрипты не должны запрещать или обрабатывать RCTM для бота хаба. Если у вас есть такие скрипты, то вам потребуется добавить отдельного бота для моего скрипта и указать его ник. Это довольно просто сделать. Если кому-то будет нужно - расскажу как. ADD: Хотелось бы видеть отзывы от тех кто поставил скрипт, особенно касательно хабов с большим онлайном. Более 256 пользователей онлайн на момент старта. ADD: Артём провел тест, за что ему спасибо. 1243 пользователя. Потребление памяти - 739 кб. Тормозов нет. Глюков тоже или же не замечены (возможно какой-то рабочий актив и переопределило в пассив, но этого точно сказать нельзя). Тестировалось на ОС Windows. |
|
|
17.1.2012, 7:28
Сообщение
#8
|
|
Участник Группа: Пользователи Сообщений: 33 Регистрация: 6.3.2011 Из: Астрахань Пользователь №: 8 903 Спасибо сказали: 5 раз |
Сужу по своей машине. Я за роутером. Каждый раз скрипт меня определял либо активом, либо пассивом. Это при запуске скрипта.
Кстати, у меня онлайн 300. При саааамом первом запуске хаб "подвис" на пару секунд. Последующие перезапуски скрипта - все ок. ЗЫ Как можно отключить сообщение бота в чат? |
|
|
17.1.2012, 9:23
Сообщение
#9
|
|
Освоившийся участник Группа: Пользователи Сообщений: 391 Регистрация: 4.11.2009 Из: Дом Пользователь №: 4 923 Спасибо сказали: 239 раз |
Отключить можно, причем достаточно просто.
Строка 158: Код Core.SendToUser(tUser, "<"..sBot.."> Ваш IP: "..tUser.sIP.." Ваш режим: "..tMode[iMode]..".") Добавьте перед ней два тире в начале: Код -- Core.SendToUser(tUser, "<"..sBot.."> Ваш IP: "..tUser.sIP.." Ваш режим: "..tMode[iMode]..".") Но на самом деле, эти сообщения нормальны. Они приходят только при входе пользователя на хаб или при перезапуске скрипта. В штатной ситуации он не должен перезапускаться по 100 раз на дню. Поэтому это сообщение будет у пользователя один раз за все время его каждого посещения. Это сообщение сделано для знающих, чтобы они видя, что у них переопределенный пассив, могли настроить у себя нормально актив. ADD: Подправил информацию в первом посте. ADD: Littlemuk, если у тебя скачет определение пассива и актива, то это плохо. Скрипт видимо глючит. Но это только в моменты его рестарта. В дальнейшем крайне маловероятно, что на хаб войдет более 256 активных пользователей одновременно. Это будет исправлено в следующей верссии (5 пункт TODO). ADD: Littlemuk, а какая у тебя OS? Windows? |
|
|
17.1.2012, 10:32
Сообщение
#10
|
|
Активный участник Группа: Пользователи Сообщений: 85 Регистрация: 19.3.2009 Из: Россия, Хабаровский край, г.Комсомольск-на-Амуре Пользователь №: 2 652 Спасибо сказали: 39 раз |
Linux Debian, Ptokax 0.4.1.2, онлайн 300+
При запуске: секунд 20 подвис, потом сообщение: пассив (переопределен), при этом поиск не работает. После перезахода Ваш режим: пассив (переопределен), но поиск уже работает. Это у одного клиента, у другого клиента, с этой же сети, поиск не работает. |
|
|
17.1.2012, 10:35
Сообщение
#11
|
|
Освоившийся участник Группа: Пользователи Сообщений: 391 Регистрация: 4.11.2009 Из: Дом Пользователь №: 4 923 Спасибо сказали: 239 раз |
Других скриптов, модифицирующих поиск нет?
Странно, что поиск не работает. Он должен в любом случае работать, даже если детекция режима прошла неверно. Сколько раз проверяли поиск? |
|
|
17.1.2012, 11:10
Сообщение
#12
|
|
Участник Группа: Пользователи Сообщений: 33 Регистрация: 6.3.2011 Из: Астрахань Пользователь №: 8 903 Спасибо сказали: 5 раз |
Винда 7ка х64
Народ начал жаловаться на отсутствие поиска. Жалобы от пассивов. Других скриптов модифицирующих поиск нет. |
|
|
17.1.2012, 11:43
Сообщение
#13
|
|
Освоившийся участник Группа: Пользователи Сообщений: 391 Регистрация: 4.11.2009 Из: Дом Пользователь №: 4 923 Спасибо сказали: 239 раз |
Крайне странно. В работу обычных пассивов скрипт не вмешивается. Хаб интернет? Если да, то сообщите адрес, я зайду потестирую.
У меня сейчас включен скрипт (в подписи адрес хаба), только что зашел полным пассивом, написало что у меня обычный пассив, не переопределенный, и поиск работает. |
|
|
17.1.2012, 12:24
Сообщение
#14
|
|
Активный участник Группа: Пользователи Сообщений: 85 Регистрация: 19.3.2009 Из: Россия, Хабаровский край, г.Комсомольск-на-Амуре Пользователь №: 2 652 Спасибо сказали: 39 раз |
Enyby, несколько раз проверяли. с другой сети и с инета пользователи. у одного ищет после перезахода, у кого то без перезахода. а режим пишется пассив (переопределен), у тех с кто проверял.
есть скрипт NetworkSeparation.lua с заданными диапазонами сетей, но он не влияет на поиск в пределах одной сети, и не мешает скрипту, наверное. |
|
|
17.1.2012, 12:31
Сообщение
#15
|
|
Освоившийся участник Группа: Пользователи Сообщений: 391 Регистрация: 4.11.2009 Из: Дом Пользователь №: 4 923 Спасибо сказали: 239 раз |
Вот это "наверное", очень под вопросом.
Посмотрел код NetworkSeparation_v1.3.1___API_2_____by_Nickolya___.lua - конфликтов не вижу. Правда скрипт может блокировать поисковые результаты пассивного поиска, если включено разделение сетей. Так что лучше его выключать на обкатке, чтобы было яснее, какой из скриптов виноват. |
|
|
17.1.2012, 12:59
Сообщение
#16
|
|
Активный участник Группа: Пользователи Сообщений: 85 Регистрация: 19.3.2009 Из: Россия, Хабаровский край, г.Комсомольск-на-Амуре Пользователь №: 2 652 Спасибо сказали: 39 раз |
Проблема оказалась в нем, сейчас все работает, определяется режим верно, и поиск работает. Хороший скрипт!
Все забывал показать сколько памяти кушает скрипт: UserModeFixer_v1.03.lua (4621 kB) при этом онлайн 450+ |
|
|
17.1.2012, 13:57
Сообщение
#17
|
|
Освоившийся участник Группа: Пользователи Сообщений: 391 Регистрация: 4.11.2009 Из: Дом Пользователь №: 4 923 Спасибо сказали: 239 раз |
Новая версия 1.04. Теперь есть статистика. У кого какие-то проблемы - включаете расширенную статистику и присылаете ее сюда.
Также приветствуется расширенная статистика с крупных хабов, это поможет улучшить скрипт в дальнейшем. Статистика включает все необходимое, включая настройки скрипта и использование ним памяти, так что сообщать эти данные уже не обязательно. ADD: Пример статистики. Снято с моего хаба. Код Статистика для скрипта User Mode Fixer v1.04
Настройки: sCmdPrefix = 'UMF' bDetailedStats = true bIgnoreInvalidIPInCTM = true bIgnoreInvalidNickInCTM = false iCheckInterval = 1000 iSelectTimeout = 0 iTimeout = 15 iConnectTimeout = 3 Статистика: MaxOnlineFixedPassive = 9 MaxOnlinePassive = 35 +SendRCTMforBot = 82 MinWaitSocket = 0 WaitCTM = 0 OnlineActive = 63 MinOnlineFixedPassive = 1 MaxOnlineActive = 68 OnlinePassive = 34 MaxWaitSocket = 65 OnlineFixedPassive = 8 MinOnlineActive = 1 MaxWaitCTM = 73 +FixedSearch = 8 +OtherCTMForBot = 3 MinOnlinePassive = 1 MinWaitCTM = 0 +ValidCTMForBot = 78 WaitSocket = 0 Статус: #tClientSockets = 0 #tActiveToPassive = 8 #tClientConnect = 0 #tActiveToPassive = 0 #tSocketNick = 0 MemoryUsage = 870 KB |
|
|
17.1.2012, 14:37
Сообщение
#18
|
|
Активный участник Группа: Пользователи Сообщений: 85 Регистрация: 19.3.2009 Из: Россия, Хабаровский край, г.Комсомольск-на-Амуре Пользователь №: 2 652 Спасибо сказали: 39 раз |
247 строка лишняя, отсылается дважды стата
|
|
|
17.1.2012, 14:42
Сообщение
#19
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
Enyby
Код [14:41:55] <Big-eyed> Статистика для скрипта User Mode Fixer v1.04 Настройки: sCmdPrefix = 'UMF' bDetailedStats = false bIgnoreInvalidIPInCTM = false bIgnoreInvalidNickInCTM = false iCheckInterval = 1000 iSelectTimeout = 0 iTimeout = 15 iConnectTimeout = 3 Статистика: OnlinePassive = 262 OnlineActive = 263 OnlineFixedPassive = 188 WaitCTM = 0 WaitSocket = 0 Статус: #tClientSockets = 0 #tActiveToPassive = 188 #tClientConnect = 0 #tActiveToPassive = 0 #tSocketNick = 0 MemoryUsage = 3857 KB 719 юзеров на хабе |
|
|
17.1.2012, 14:45
Сообщение
#20
|
|
Освоившийся участник Группа: Пользователи Сообщений: 391 Регистрация: 4.11.2009 Из: Дом Пользователь №: 4 923 Спасибо сказали: 239 раз |
Исправил. Залил версию 1.05.
ADD: Артём, если не трудно, сделай, пожалуйста, тоже самое, но с "bDetailedStats = true". Это в коде скрипта меняется в начале. |
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последнее сообщение | |
---|---|---|---|---|---|
От: User Info 1.0 (русская Версия) От темы с ID: 205 |
0 | Sergey613 | 4 582 | 9.10.2012, 20:03 Посл. сообщение: Sergey613 | |
User Info 1.0 (русская Версия) API2 | Скрипт для просмотра информации о юзерах |
26 | dimetrius | 39 098 | 28.12.2010, 17:54 Посл. сообщение: ProGeTTo | |
запрос: User-Sity Скрипт, выдающий город выделенного юзера |
7 | Uncle_Dif | 11 717 | 1.9.2009, 20:20 Посл. сообщение: Jaska | |
Powersimple User Information 1.2 API1, API2 | Информация по IP и никам юзеров |
5 | NikseR | 9 117 | 15.8.2009, 16:57 Посл. сообщение: Климент | |
Fake User | 2 | West | 7 480 | 27.11.2008, 19:28 Посл. сообщение: Svyat |
|
Сейчас: 23.11.2024, 5:10 |