From 33550ccc6938069eac6f5b48701c3087932d9b8b Mon Sep 17 00:00:00 2001 From: mbandic Date: Mon, 11 Dec 2023 14:55:44 +0000 Subject: [PATCH] Class, methodes, bot.. --- .gitignore | 1 + .vscode/settings.json | 5 ++++ lib/ipban.hpp | 48 ++++++++++++++++++++++++++++++++++ src/ipban.cpp | 59 ++++++++++++++++++++++++++++++++++++++++++ test/test | Bin 0 -> 179160 bytes test/test.cpp | 10 +++++++ 6 files changed, 123 insertions(+) create mode 100644 .gitignore create mode 100644 .vscode/settings.json create mode 100644 lib/ipban.hpp create mode 100644 src/ipban.cpp create mode 100755 test/test create mode 100644 test/test.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..33a9488 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +example diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..930ff05 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "*.tcc": "cpp" + } +} \ No newline at end of file diff --git a/lib/ipban.hpp b/lib/ipban.hpp new file mode 100644 index 0000000..46ab509 --- /dev/null +++ b/lib/ipban.hpp @@ -0,0 +1,48 @@ +#ifndef IP_BAN +#define IP_BAN + +#include +#include +#include +#include +#include + +#include +#include + +using namespace std; + +namespace marcelb { + +#define BOT_LOOP_TIME 60 // 1 minutes +#define BOT_SLEEP_LOOP_TIME 1 // 1 second + +struct _ban { + string ip; + time_t _time; +}; + +class ipban { + mutex io; + time_t ban_duration; // u sekundama + vector<_ban> banned; + future unban_bot; + bool run_unban_bot = true; + // interface možda bude trebao za ban + + bool unban(vector<_ban>::iterator ban_itr); + bool ufw_ban(const string& ip); + bool ufw_unban(const string& ip); + + public: + ipban(const uint& _duration); // u minutama? + bool ban(const string& ip); + ~ipban(); + +}; + +static void sleep_if(const uint& _time, const bool& _condition); + +} + +#endif \ No newline at end of file diff --git a/src/ipban.cpp b/src/ipban.cpp new file mode 100644 index 0000000..8214869 --- /dev/null +++ b/src/ipban.cpp @@ -0,0 +1,59 @@ +#include "../lib/ipban.hpp" + +marcelb::ipban::ipban(const uint& _duration) { + ban_duration = _duration*60; + + unban_bot = async(launch::async, [&]() { + while (run_unban_bot) { + sleep_if(BOT_LOOP_TIME, run_unban_bot); + cout << "Sleep" << endl; + io.lock(); + for (uint i=0; i= ban_duration) { + unban(banned.begin() + i); + } + } + io.unlock(); + } + return; + }); + +} + +marcelb::ipban::~ipban() { + run_unban_bot = false; + unban_bot.get(); + for (uint i=0; i::iterator ban_itr) { + ufw_unban(ban_itr->ip); + io.lock(); + banned.erase(ban_itr); + io.unlock(); +} + +bool marcelb::ipban::ufw_ban(const string& ip) { + cout << "UFW ban IP: " << ip << endl; +} + + +bool marcelb::ipban::ufw_unban(const string& ip) { + cout << "UFW unban IP: " << ip << endl; +} + +static void marcelb::sleep_if(const uint& _time, const bool& _condition) { + time_t start_time = time(NULL); + do { + sleep(BOT_SLEEP_LOOP_TIME); + } while (difftime(time(NULL), start_time) < _time && _condition); +} diff --git a/test/test b/test/test new file mode 100755 index 0000000000000000000000000000000000000000..42cc0650ea5c577309180842650166ff0a8a1406 GIT binary patch literal 179160 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 kE2aMX{2G13s(O2q;_+WWAl)PB`4jI@u4Z}