cyber-security-resources/packet defender
2024-12-13 23:33:13 +05:30

56 lines
1.3 KiB
Plaintext

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
class Packet {
public:
std::string sourceIP;
std::string destinationIP;
int port;
Packet(std::string src, std::string dest, int p)
: sourceIP(src), destinationIP(dest), port(p) {}
};
class PacketFilter {
private:
std::vector<std::string> blockedIPs;
public:
void addBlockedIP(const std::string& ip) {
blockedIPs.push_back(ip);
}
bool isBlocked(const Packet& packet) {
return std::find(blockedIPs.begin(), blockedIPs.end(), packet.sourceIP) != blockedIPs.end();
}
void processPacket(const Packet& packet) {
if (isBlocked(packet)) {
std::cout << "Blocked packet from: " << packet.sourceIP << std::endl;
} else {
std::cout << "Allowed packet from: " << packet.sourceIP << std::endl;
}
}
};
int main() {
PacketFilter filter;
filter.addBlockedIP("192.168.1.10");
filter.addBlockedIP("10.0.0.5");
std::vector<Packet> packets = {
Packet("192.168.1.10", "192.168.1.1", 80),
Packet("10.0.0.5", "192.168.1.2", 443),
Packet("192.168.1.20", "192.168.1.3", 22),
Packet("172.16.0.1", "192.168.1.4", 8080)
};
for (const auto& packet : packets) {
filter.processPacket(packet);
}
return 0;
}