Eric's blog

随笔记录

Golang 判断 IP 是否在 CIDR

1
2
3
4
5
6
7
8
9
10
11
12
func IpContains(cidr string, ip string) bool {
_, ipnet, err := net.ParseCIDR(cidr)
if err != nil {
return false
}
ipAddr := net.ParseIP(ip)
return ipnet.Contains(ipAddr)
}
func TestIpContains(tt *testing.T) {
fmt.Println(IpContains("192.168.1.0/24", "192.168.1.1"))
fmt.Println(IpContains("192.168.1.0/24", "192.168.2.1"))
}

ip地址转换、CIDR/Netmask转换:

http://ip.chacuo.net/ipconvert