aboutsummaryrefslogtreecommitdiff
path: root/analyzer
diff options
context:
space:
mode:
Diffstat (limited to 'analyzer')
-rw-r--r--analyzer/capture.c28
-rw-r--r--analyzer/capture.h8
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);