Compare commits

...

4 Commits

Author SHA1 Message Date
Mike Holloway
54b52273da 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.
2021-06-28 00:11:40 -04:00
Mike Holloway
93fd6f916b On branch timer
Changes to be committed:
	modified:   main.go
		Arrays for each line of the tcp file.
2021-06-26 17:11:23 -04:00
Mike Holloway
8e2f4e3db8 On branch timer
Changes to be committed:
	modified:   main.go
		Adding use of time package directly
	modified:   timer/timer.go
		Simplifying this away.
2021-06-26 17:07:48 -04:00
Mike Holloway
bb77957ed4 On branch master
Changes to be committed:
	modified:   main.go
		Adding '_' to characters ignored by regex replace.
2021-06-26 13:00:58 -04:00
2 changed files with 62 additions and 19 deletions

53
main.go
View File

@ -1,7 +1,9 @@
package main
import (
"./timer"
"reflect"
//"./timer"
"time"
"fmt"
"strings"
"regexp"
@ -10,7 +12,10 @@ 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?
@ -18,8 +23,28 @@ func main() {
// and then converted byte by byte (2 char at a time)
//fmt.Println(convert_address(reverse_string(reverse_bytes("0100007F"))))
timer.New()
tcp_rows(read_tcp_file("/proc/net/tcp"))
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) {
@ -28,17 +53,21 @@ func check(e error) {
}
}
func tcp_rows(connections_file string) {
regexpression := regexp.MustCompile(`[^a-zA-Z0-9:\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.ReplaceAllString(trim_line, ",")
// 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.

View File

@ -6,16 +6,30 @@ import (
//"reflect"
)
func New() {
func New(duration_int int, unit string) *time.Timer {
timer_10s := time.NewTimer(10 * time.Second)
start := time.NewTimer(0)
duration := time.Duration(duration_int)
// fmt.Println(reflect.TypeOf(duration))
// timer_10s := time.NewTimer(10 * time.Second)
// timer_1m := time.NewTimer(1 * time.Minute)
fmt.Println("Waiting 10 seconds...")
<-timer_10s.C
fmt.Println("Duration: ", duration_int, "Unit: ", unit, ".")
if unit == "Second" {
start = time.NewTimer(duration * time.Second)
} else if unit == "Minute" {
start = time.NewTimer(duration * time.Minute)
} else {
fmt.Println("Unit not recognized.")
}
fmt.Println("Waiting ", duration_int, " ", unit, ".")
if start.Stop() {
<-start.C
fmt.Println("Done waiting ", duration_int, " ", unit, "!")
}
return start
// for elapsed < ten_seconds {
//}
// for
}
func Reset