JSON-based latency
parent
897f297de8
commit
0ce3c8bb2a
|
@ -1,9 +1,9 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
"log"
|
||||
)
|
||||
|
||||
func main() {
|
||||
log.Print("comp")
|
||||
log.Print("comp")
|
||||
}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
"os"
|
||||
"log"
|
||||
"os"
|
||||
)
|
||||
|
||||
func main() {
|
||||
log.Print(os.Args[1])
|
||||
log.Print(os.Args[1])
|
||||
}
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
"log"
|
||||
)
|
||||
|
||||
func main() {
|
||||
log.Print("comp")
|
||||
log.Print("comp")
|
||||
}
|
||||
|
|
79
latency.go
79
latency.go
|
@ -1,9 +1,82 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
"encoding/json"
|
||||
"flag"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func main() {
|
||||
log.Print("comp")
|
||||
type openPort struct {
|
||||
IP string `json:"ip"`
|
||||
Timestamp string `json:"timestamp"`
|
||||
Ports []portInfo `json:"ports"`
|
||||
}
|
||||
|
||||
type portInfo struct {
|
||||
Port int `json:"port"`
|
||||
Proto string `json:"proto"`
|
||||
Status string `json:"status"`
|
||||
Reason string `json:"reason"`
|
||||
TTL int `json:"ttl"`
|
||||
}
|
||||
|
||||
type hostLatency struct {
|
||||
IP string `json:"ip"`
|
||||
TTL int `json:"ttl"`
|
||||
}
|
||||
|
||||
var flagIn = flag.String("in", "", "comma-seperated list of input files")
|
||||
var flagOut = flag.String("out", "latency.json", "output file")
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
in := strings.Split(*flagIn, ",")
|
||||
out := *flagOut
|
||||
|
||||
data := make([]openPort, 0)
|
||||
|
||||
for _, fin := range in {
|
||||
log.Println("Reading file " + fin)
|
||||
raw, err := ioutil.ReadFile(fin)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
log.Println("Fixing file " + fin)
|
||||
raw = raw[:len(raw)-3]
|
||||
raw[len(raw)-1] = ']'
|
||||
|
||||
log.Println("Parsing file " + fin)
|
||||
fdata := make([]openPort, 0)
|
||||
err = json.Unmarshal(raw, &fdata)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
log.Println("File " + fin + " read successfully")
|
||||
data = append(data, fdata...)
|
||||
}
|
||||
|
||||
log.Println("Reducing data to IP and latency")
|
||||
odata := make([]hostLatency, 0)
|
||||
for _, o := range data {
|
||||
h := hostLatency{
|
||||
IP: o.IP,
|
||||
TTL: o.Ports[0].TTL,
|
||||
}
|
||||
odata = append(odata, h)
|
||||
}
|
||||
|
||||
log.Println("Encoding json")
|
||||
raw, err := json.Marshal(odata)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
log.Println("Writing to file " + out)
|
||||
err = ioutil.WriteFile(out, raw, 0)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue