Я делаю несколько классов для IRC бота с PHP.В идеале бот должен быть защитным каналом, чтобы пнуть и запретить нарушителей.
Теперь у меня есть хорошая идея о том, как сделать большинство вещей (матерные слова соответствуют, все заглавные буквы и т. Д.).Но наиболее важными являются средства управления потоком.
Я хочу посмотреть, будет ли пользователь печатать, скажем, 5 строк текста за 3 секунды или пользователь вводил более 220 байтов текста менее чем за 3 секундыбот примет меры.Это все, конечно, получено в сокетах, в которых я не очень острый.
Примеры:
Поток строк
[11:17:00] <user1> Hey!
[11:17:00] <user1> Hey!
[11:17:00] <user1> Hey!
[11:17:11] <user1> Hey!
[11:17:11] <user1> SPAAAAAACE!
*Line flood detected!*
Поток байтов
[11:17:00] <user1> Hey! this is a very long long text.
[11:17:00] <user1> and I pasted it from a file or something so that these lines all occur one after another with 0 time
[11:17:00] <user1> This should be considered a byte flood since it's so very looooooooooooooong.
*byte flood detected overall counted bytes in the last 3 seconds from user1 is too much*
Итак, вопрос: Как рассчитать, если определенный ввод произошел X раз в Y секунд, а также как подсчитать, если другой определенный ввод был X байтов (накопительный) был отправлен в течение Y секунд?
Мой код по сокету аналогичен Здесь