| 12345678910111213141516171819202122 |
- package common
- import "net"
- func IsPrivateIP(ip net.IP) bool {
- if ip.IsLoopback() || ip.IsLinkLocalUnicast() || ip.IsLinkLocalMulticast() {
- return true
- }
- private := []net.IPNet{
- {IP: net.IPv4(10, 0, 0, 0), Mask: net.CIDRMask(8, 32)},
- {IP: net.IPv4(172, 16, 0, 0), Mask: net.CIDRMask(12, 32)},
- {IP: net.IPv4(192, 168, 0, 0), Mask: net.CIDRMask(16, 32)},
- }
- for _, privateNet := range private {
- if privateNet.Contains(ip) {
- return true
- }
- }
- return false
- }
|