mirror of
https://github.com/QuantumNous/new-api.git
synced 2026-03-30 09:15:42 +00:00
23 lines
478 B
Go
23 lines
478 B
Go
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
|
|
}
|