只是一个简单的计网课设
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.
eruhs/core/capture_test.go

51 lines
1.3 KiB

6 months ago
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}")
}