1234567891011121314151617181920212223242526272829303132333435363738 |
- #include "../include/Sniffer.h"
- #include <cstdlib>
- #include <iostream>
- 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
- }
|