func main() { file := "../../1.pcap" key := "ip.addr" golibwireshark.Init(file, "") defer golibwireshark.Clean() var p golibwireshark.Packet for { p.GetPacket() if p.Edt == nil { break } if valueList, ok := p.IsKey(key); ok { for _, v := range valueList { fmt.Printf("[%s] %s\n", key, v) } } p.FreePacket() } }
func TestIskey(t *testing.T) { file := "1.pcap" err := golibwireshark.ReOpenInputFile(file) if err != nil { t.Fatalf("%s", err) } var p golibwireshark.Packet p.GetPacket() if p.Edt == nil { fmt.Println("can't find packet") os.Exit(1) } key := "ip.addr" get, _ := p.IsKey(key) p.FreePacket() golibwireshark.CloseInputFile() wanted := []string{"10.128.229.6", "10.128.228.50"} if get[0] != wanted[0] { t.Fatalf("wanted: (%s), get: (%s)", wanted[0], get[0]) } if get[1] != wanted[1] { t.Fatalf("wanted: (%s), get: (%s)", wanted[1], get[1]) } }
func Example() { file := "1.pcap" outfile := "o.pcap" key := "ip.addr" err := golibwireshark.Init(file, outfile) if err != nil { fmt.Printf("open file failed\n") return } defer golibwireshark.Clean() var p golibwireshark.Packet for { p.GetPacket() if p.Edt == nil { break } if _, ok := p.IsKey(key); ok { p.WriteToFile() } p.FreePacket() } }