You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.3 KiB
50 lines
1.3 KiB
package core
|
|
|
|
import (
|
|
"encoding/json"
|
|
"eruhs/core/parser"
|
|
"fmt"
|
|
_ "net/http/pprof"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestCapture_StartCaptureOnDevice(t *testing.T) {
|
|
cnt := 0
|
|
capture := NewCapture(func(pack *DataPack) {
|
|
cnt++
|
|
for _, layer := range pack.LayerStack {
|
|
switch layer.(type) {
|
|
case *parser.Ethernet:
|
|
fmt.Printf("%+v", layer.(*parser.Ethernet))
|
|
case *parser.IPv4:
|
|
fmt.Printf("%+v", layer.(*parser.IPv4))
|
|
case *parser.ARP:
|
|
fmt.Printf("%+v", layer.(*parser.ARP))
|
|
case *parser.TCP:
|
|
fmt.Printf("%+v", layer.(*parser.TCP))
|
|
case *parser.UDP:
|
|
fmt.Printf("%+v", layer.(*parser.UDP))
|
|
default:
|
|
j, err := json.MarshalIndent(layer, "", " ")
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
fmt.Println(j)
|
|
}
|
|
}
|
|
fmt.Println("----------------")
|
|
//if cnt == 16 {
|
|
// t.SkipNow()
|
|
//}
|
|
}, func(err error) {
|
|
t.Error(err)
|
|
})
|
|
|
|
go func() {
|
|
time.Sleep(3 * time.Second)
|
|
capture.Stop()
|
|
}()
|
|
|
|
capture.StartCaptureOnDevice("\\Device\\NPF_{AA5A8BD6-43B3-489B-9858-0ECB96EAB05E}")
|
|
}
|
|
|