func NewPinger() *Pinger {
	rand.Seed(time.Now().UnixNano())
	return &Pinger{
		id:      rand.Intn(0xffff),
		seq:     rand.Intn(0xffff),
		addrs:   make(map[string]*net.IPAddr),
		network: "ip",
		source:  "",
		source6: "",
		hasIPv4: false,
		hasIPv6: false,
		Size:    TimeSliceLength,
		MaxRTT:  time.Second,
		OnRecv:  nil,
		OnIdle:  nil,
		Debug:   false,
	}
}
func NewPinger() *Pinger {
	rand.Seed(time.Now().UnixNano())
	return &Pinger{
		id:      rand.Intn(0xffff),
		seq:     rand.Intn(0xffff),
		addrs:   make(map[string]*net.IPAddr),
		network: "ip",
		source:  "",
		source6: "",
		hasIPv4: false,
		hasIPv6: false,
		Size:    TimeSliceLength,
		MaxRTT:  time.Second,
		OnRecv:  nil,
		OnIdle:  nil,
		Debug:   false,
	}
}
func NewPinger ( ) * Pinger { rand . Seed ( time . Now ( ) . UnixNano ( ) ) return & Pinger { id : rand . Intn ( 0xffff ) , seq : rand . Intn ( 0xffff ) , addrs : make ( map [ string ] * net . IPAddr ) , network : " " , source : " " , source6 : " " , hasIPv4 : false , hasIPv6 : false , Size : TimeSliceLength , MaxRTT : time . Second , OnRecv : nil , OnIdle : nil , Debug : false , } }
// NewPinger returns a new Pinger struct pointer
NewPinger returns a new Pinger struct pointer