diff options
Diffstat (limited to 'analyzer')
| -rw-r--r-- | analyzer/capture.c | 28 | ||||
| -rw-r--r-- | analyzer/capture.h | 8 |
2 files changed, 36 insertions, 0 deletions
diff --git a/analyzer/capture.c b/analyzer/capture.c new file mode 100644 index 0000000..0a75e09 --- /dev/null +++ b/analyzer/capture.c @@ -0,0 +1,28 @@ +#include "capture.h" + +#include <stdio.h> +#include <stdlib.h> + +#include "headers/interface.h" +#include "headers/server.h" +#include "utils/fs.h" +#include "utils/time.h" + +void capture_to_file(char *path) { + char command[128]; + sprintf(command, "tshark -i %s -f \"src host %s\" -w %s", INTERFACE, SERVER_IP, path); + system(command); +} + +void capturing_mode(char *path) { + if (path != NULL) { + capture_to_file(path); + return; + } + + char capture_dir[256], new_path[256], date_time[128]; + get_capture_dir(capture_dir); + get_date_time_string(date_time); + sprintf(new_path, "%s/capture-%s.pcap", capture_dir, date_time); + capture_to_file(new_path); +} diff --git a/analyzer/capture.h b/analyzer/capture.h new file mode 100644 index 0000000..648e5ad --- /dev/null +++ b/analyzer/capture.h @@ -0,0 +1,8 @@ +// capture.h +// functions for capturing packets using tshark + +// starts capturing mode +// params: +// - path - file path to capture the .pcap file to, +// if NULL, saves it to default capture directory as capture-<date>_<time>.pcap +extern void capturing_mode(char *path); |
