package mox

import (
	"net"
)

// Network returns tcp4 or tcp6, depending on the ip.
// This network can be passed to Listen instead of "tcp", which may start listening
// on both ipv4 and ipv6 for addresses 0.0.0.0 and ::, which can lead to errors
// about the port already being in use.
// For invalid IPs, "tcp" is returned.
func Network(ip string) string {
	v := net.ParseIP(ip)
	if v == nil {
		return "tcp"
	}
	if v.To4() != nil {
		return "tcp4"
	}
	return "tcp6"
}