ebpf-blocker 1.0.0
XDP-based packet blocker using eBPF
Loading...
Searching...
No Matches
db.h File Reference

Обёртка SQLite-базы данных и утилиты парсинга CIDR. More...

#include <cstdint>
#include <sqlite3.h>
#include <string>
#include <vector>

Go to the source code of this file.

Data Structures

struct  BlockEntry
 Одна запись (IP/CIDR + комментарий) для whitelist или blacklist. More...
 
struct  CIDR
 Распарсенное представление CIDR-подсети. More...
 
class  BlockerDB
 

Functions

CIDR ParseCIDR (const std::string &str)
 
std::string IPToString (uint32_t ip)
 

Detailed Description

Обёртка SQLite-базы данных и утилиты парсинга CIDR.

Предоставляет RAII-обёртку над SQLite3 (BlockerDB), парсер CIDR-нотации и конвертер IP-адресов.

Definition in file db.h.

Function Documentation

◆ IPToString()

std::string IPToString ( uint32_t ip)

Конвертирует 32-битный IP (network byte order) в dotted-decimal строку.

Parameters
[in]ipIP-адрес в network byte order.
Returns
Строка вида "192.168.1.1".

Definition at line 45 of file db.cpp.

Referenced by TEST(), and BlockerDB::UpdateLastBlockedAt().

◆ ParseCIDR()

CIDR ParseCIDR ( const std::string & str)

Парсит CIDR-строку (например "192.168.1.0/24") в структуру CIDR.

Parameters
[in]strВходная строка в формате "IP" или "IP/длина_префикса".
Returns
Распарсенный CIDR (ip в network byte order, с маской).
Exceptions
std::invalid_argumentпри некорректном IP или длине префикса.

Definition at line 18 of file db.cpp.

References CIDR::prefixlen.

Referenced by TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), and XdpBlocker::UpdateMap().