Ctrl K
ComunidadGuías…

utils/ip.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
package utils

import "inet.af/netaddr"

var (
	dockerNetwork = netaddr.MustParseIPPrefix("172.16.0.0/12")
)

func IsIpPrivate(ip netaddr.IP) bool {
	if ip.IsPrivate() {
		return true
	}
	if ip.Is4() {
		parts := ip.As4()
		return parts[0] == 100 && parts[1]&0xc0 == 64 // 100.64.0.0/10
	}
	return false
}

func IsIpDocker(ip netaddr.IP) bool {
	return dockerNetwork.Contains(ip)
}

func IsIpExternal(ip netaddr.IP) bool {
	return !ip.IsLoopback() && !ip.IsPrivate()
}