summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorB4rkod <void@Asena.localdomain>2023-11-09 11:09:47 +0300
committerB4rkod <void@Asena.localdomain>2023-11-09 11:09:47 +0300
commit60686bd11585b1a747453b58b976e0381e76d18d (patch)
treef1df4fc01df365fab5c017060d376ba938d2f259
parent5ad8427e96673042a34ec30eca3eecd3fde95a9d (diff)
added netcheck
-rw-r--r--netcheck.c65
1 files changed, 65 insertions, 0 deletions
diff --git a/netcheck.c b/netcheck.c
new file mode 100644
index 0000000..ce07bc2
--- /dev/null
+++ b/netcheck.c
@@ -0,0 +1,65 @@
+#include <stdio.h>
+#include <errno.h>
+#include <time.h>
+
+#define TMP "/tmp/netcheck_test.txt"
+
+#define ETH_DOWN_CURR fileread("/sys/class/net/eth0/statistics/rx_bytes")
+#define ETH_UP_CURR fileread("/sys/class/net/eth0/statistics/tx_bytes")
+#define WLAN_DOWN_CURR fileread("/sys/class/net/wlan0/statistics/rx_bytes")
+#define WLAN_UP_CURR fileread("/sys/class/net/wlan0/statistics/tx_bytes")
+
+int con_size(double i){
+if (i > 1000000)
+ printf(" %1.1lfM", i / 1000000) ;
+else if (i > 1000 )
+ printf(" %3.0lfK", i / 1000) ;
+else
+ printf(" %3.0lfB", i);
+}
+
+int fileread(char *fi)
+{
+ FILE *f; unsigned long i;
+ f = fopen(fi, "r");
+ fscanf(f, "%ld", &i);
+ fclose(f);
+ return i;
+}
+
+int main()
+{
+unsigned long curr_down, curr_up;
+unsigned long former_down, former_up, former_time;
+unsigned long curr_time = time(NULL);
+
+curr_down = WLAN_DOWN_CURR + ETH_DOWN_CURR ;
+curr_up = WLAN_UP_CURR + ETH_UP_CURR ;
+
+FILE *tmp_file;
+tmp_file = fopen(TMP, "r");
+if (tmp_file != NULL)
+{
+ fscanf(tmp_file, "%d %d %ld", &former_down,
+ &former_up,
+ &former_time);
+ fclose(tmp_file);
+
+ unsigned short time_diff = curr_time - former_time;
+
+ printf("DOWN");
+ con_size((curr_down - former_down) / time_diff);
+ printf(" UP");
+ con_size((curr_up - former_up) / time_diff);
+ printf("\n");
+ }
+else
+ printf("DOWN X UP X\n");
+
+ tmp_file = fopen(TMP, "w");
+ fprintf(tmp_file,"%ld %ld %ld", curr_down,
+ curr_up,
+ curr_time);
+ fclose(tmp_file);
+}
+