#include "../include/Sniffer.h" #include #include Sniffer::Sniffer(const std::string &interfaceName) { Tins::SnifferConfiguration config; config.set_promisc_mode(true); try { sniffer = new Tins::Sniffer(interfaceName, config); } catch (const Tins::pcap_error &e) { std::cerr << "An error accured setting up the sniffer: " << e.what() << std::endl; std::exit(EXIT_FAILURE); } } Sniffer::~Sniffer() { sniffer->stop_sniff(); delete (sniffer); } void Sniffer::startSniffing() { sniffer->sniff_loop(make_sniffer_handler(this, &Sniffer::handle)); } void Sniffer::setFilter(const std::string &filterString) { sniffer->set_filter(filterString); } bool Sniffer::handle(Tins::PDU &pdu) { // TODO implement handler for sniffed traffic std::cout << "packet sniffed" << std::endl; return false; // will stop sniffing after the first packet because this // handler returns false }