diff --git a/main.go b/main.go index e4a535d..9070ab3 100644 --- a/main.go +++ b/main.go @@ -1,6 +1,7 @@ package main import ( +"reflect" //"./timer" "time" "fmt" @@ -14,6 +15,7 @@ import ( var tcp_data string = read_tcp_file("/proc/net/tcp") func main() { + var loops int = 0 // How to split on space-delimited fields, then colon-delimited fields? // How to turn this byte into a string? @@ -21,20 +23,28 @@ func main() { // and then converted byte by byte (2 char at a time) //fmt.Println(convert_address(reverse_string(reverse_bytes("0100007F")))) -// tensec := timer.New(10, "Second") -// onemin := timer.New(1, "Minute") -// tensec.Reset( - tensec := time.NewTimer(10 * time.Second) - onemin := time.NewTimer(1 * time.Minute) -// if !tensec.Stop() { -// fmt.Println("Done waiting 10 seconds!") -// } - fmt.Println("Waiting 10 seconds...") - <-tensec.C - tcp_rows(tcp_data) - fmt.Println("Waiting 1 minute...") - <-onemin.C - tcp_rows(tcp_data) + for _ = range time.Tick(10 * time.Second) { + fmt.Println("Waiting 10 seconds...") + for num, row := range get_tcp_rows(tcp_data) { + row_type := reflect.TypeOf(row) + fmt.Println(num, " ", row_type) + } + // if loops modulo 6 (1min) then + // for address in address_list do + // if (grep address address_list | wc -l >=3) then + // This is a port scan! + // fi + // done + // elseif (wc -l old_tcp_file > wc -l tcp_file) then + // for i in (wc -l tcp_file - wc -l old_tcp_flle) do + // print New Connection! reverse_strng(reverse_bytes(tcp_file[i])) // This oversimplifies row value selection for the sake + // // of pseudocode + // done + // else + // "No new connections. Waiting another 10 seconds..." + // fi + loops++ + } } func check(e error) { @@ -43,17 +53,21 @@ func check(e error) { } } -func tcp_rows(connections_file string) { - regexpression := regexp.MustCompile(`[\r\n\t\v]+`) - tcp_lines := strings.Split(connections_file, "\n") +// Aiming for an array of [string]string maps +// Am I looking for a map[string]interface here? +func get_tcp_rows(connections_file string) []string { + tcp_lines := strings.Split(connections_file, "\n") + regexpression := regexp.MustCompile(`[\r\n\t\f\v]+`) + tcp_columns := regexpression.Split(tcp_lines[0], -1) + var tcp_values map[string]string - for _, line := range tcp_lines { - trim_line := strings.TrimSpace(line) - values := regexpression.Split(trim_line, -1) -// Debug -// fmt.Println("New Line ==========") - fmt.Println(values) + for i, line := range tcp_lines[1:] { + trim_line := strings.TrimSpace(line) + values := regexpression.Split(trim_line, -1) + column := tcp_columns[i] + tcp_values[column] = values } + return tcp_values } // Take a string, create a rune slice, and use a loop to reverse it character-wise.