1
0
mirror of https://github.com/mfontanini/libtins synced 2026-01-23 02:35:57 +01:00

Merge pull request #33 from mfontanini/sniffer-config-object

Sniffer config object
This commit is contained in:
Matias Fontanini
2014-08-31 18:44:02 -03:00
11 changed files with 438 additions and 116 deletions

View File

@@ -87,10 +87,14 @@ int main(int argc, char *argv[])
return 1;
}
arp_monitor monitor;
// Sniffer configuration
SnifferConfiguration config;
config.set_promisc_mode(true);
config.set_filter("arp");
// Sniff on the provided interface in promiscuous mode
Sniffer sniffer(argv[1], Sniffer::PROMISC);
Sniffer sniffer(argv[1], config);
// Only capture arp packets
sniffer.set_filter("arp");
monitor.run(sniffer);
}

View File

@@ -47,7 +47,11 @@ private:
};
void BeaconSniffer::run(const std::string &iface) {
Sniffer sniffer(iface, Sniffer::PROMISC, "type mgt subtype beacon", true);
SnifferConfiguration config;
config.set_promisc_mode(true);
config.set_filter("type mgt subtype beacon");
config.set_rfmon(true);
Sniffer sniffer(iface, config);
sniffer.sniff_loop(make_sniffer_handler(this, &BeaconSniffer::callback));
}

View File

@@ -55,10 +55,11 @@ int main(int argc, char *argv[])
return 1;
}
// Sniff on the provided interface in promiscuos mode
Sniffer sniffer(argv[1], Sniffer::PROMISC);
SnifferConfiguration config;
config.set_promisc_mode(true);
// Only capture udp packets sent to port 53
sniffer.set_filter("udp and dst port 53");
config.set_filter("udp and dst port 53");
Sniffer sniffer(argv[1], config);
// Start the capture
sniffer.sniff_loop(callback);

View File

@@ -90,10 +90,11 @@ int main(int argc, char *argv[])
return 1;
}
// Sniff on the provided interface in promiscuos mode
Sniffer sniffer(argv[1], Sniffer::PROMISC);
SnifferConfiguration config;
config.set_promisc_mode(true);
// Only capture udp packets sent to port 53
sniffer.set_filter("udp and dst port 53");
config.set_filter("udp and dst port 53");
Sniffer sniffer(argv[1], config);
// All packets will be sent through the provided interface
sender.default_interface(argv[1]);

View File

@@ -166,8 +166,10 @@ int main(int argc, char *argv[]) {
return 1;
}
try {
Sniffer sniffer(argv[1], Sniffer::PROMISC);
sniffer.set_filter("udp and port 53");
SnifferConfiguration config;
config.set_promisc_mode(true);
config.set_filter("udp and dst port 53");
Sniffer sniffer(argv[1], config);
dns_monitor monitor;
std::thread thread(
[&]() {

View File

@@ -117,7 +117,9 @@ void scan(int argc, char *argv[]) {
cout << "Sniffing on interface: " << iface.name() << endl;
// 300 bytes are enough to receive SYNs and RSTs.
Sniffer sniffer(iface.name(), 300);
SnifferConfiguration config;
config.set_snap_len(300);
Sniffer sniffer(iface.name(), config);
sniffer_data data(&sniffer, argv[1]);
pthread_t thread;
// Launch our sniff thread.

View File

@@ -47,10 +47,12 @@ public:
result_type trace() {
// ICMPs that aren't sent from us.
Sniffer sniffer(
iface.name(), 500, false,
"ip proto \\icmp and not src host " + iface.addresses().ip_addr.to_string()
);
SnifferConfiguration config;
config.set_snap_len(500);
config.set_promisc_mode(false);
config.set_filter(
"ip proto \\icmp and not src host " + iface.addresses().ip_addr.to_string());
Sniffer sniffer(iface.name(), config);
PacketSender sender;
// Create our handler

View File

@@ -69,6 +69,10 @@ int main(int argc, char *argv[]) {
return 1;
}
// Only sniff beacons
Sniffer sniffer(argv[1], 2000, true, "wlan type mgt subtype beacon");
SnifferConfiguration config;
config.set_snap_len(2000);
config.set_promisc_mode(true);
config.set_filter("wlan type mgt subtype beacon");
Sniffer sniffer(argv[1], config);
sniffer.sniff_loop(handler);
}