On branch read-file-error-check
Changes to be committed: modified: .gitignore new file: main.go New Functions: Inelegant hex->dot-decimal address translation solution
This commit is contained in:
parent
173e354269
commit
828a0193aa
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
|||||||
.*.sw*
|
.*.sw*
|
||||||
|
main
|
||||||
|
61
main.go
Normal file
61
main.go
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
package main
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
"regexp"
|
||||||
|
"io/ioutil"
|
||||||
|
"encoding/hex"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
// How to split on space-delimited fields, then colon-delimited fields?
|
||||||
|
// How to turn this byte into a string?
|
||||||
|
|
||||||
|
// /proc/net/tcp hex addresses need to be reversed two-character-wise
|
||||||
|
// and then converted byte by byte (2 char at a time)
|
||||||
|
//fmt.Println(convert_address(reverse_string(reverse_bytes("0100007F"))))
|
||||||
|
|
||||||
|
read_tcp_file("/proc/net/tcp")
|
||||||
|
}
|
||||||
|
|
||||||
|
func check(e error) {
|
||||||
|
if e != nil {
|
||||||
|
panic(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Take a string, create a rune slice, and use a loop to reverse it character-wise.
|
||||||
|
func reverse_bytes(s string) string {
|
||||||
|
runes := []rune(s)
|
||||||
|
for i, j := len(runes)-2, len(runes)-1; j > 0; i, j = i-2, j-2 {
|
||||||
|
runes[i], runes[j] = runes[j], runes[i]
|
||||||
|
}
|
||||||
|
return string(runes)
|
||||||
|
}
|
||||||
|
|
||||||
|
func reverse_string(s string) string {
|
||||||
|
runes := []rune(s)
|
||||||
|
for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
|
||||||
|
runes[i], runes[j] = runes[j], runes[i]
|
||||||
|
}
|
||||||
|
return string(runes)
|
||||||
|
}
|
||||||
|
// Store data function
|
||||||
|
// Loads all fields and subfields into storage (memory? where?)
|
||||||
|
// State check function
|
||||||
|
// hash each line, use to determine new lines, convert to readable, and print
|
||||||
|
|
||||||
|
|
||||||
|
func convert_address(address string) []byte {
|
||||||
|
output, err := hex.DecodeString(address)
|
||||||
|
check(err)
|
||||||
|
return output
|
||||||
|
}
|
||||||
|
func read_tcp_file(connections_file_path string) string {
|
||||||
|
data, err := ioutil.ReadFile(connections_file_path)
|
||||||
|
check(err)
|
||||||
|
fmt.Println("Data file read successfully.\n")
|
||||||
|
return string(data)
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user