On branch pseudocode
Changes to be committed: modified: main.go Due tomorrow, only a few hours found for this project, so the choice to flesh out ideas in pseudocode was made.
This commit is contained in:
parent
93fd6f916b
commit
54b52273da
60
main.go
60
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.
|
||||
|
Loading…
Reference in New Issue
Block a user