p2p/nat: use IP.IsPrivate (#26252)

This commit is contained in:
Seungbae Yu 2022-11-26 00:30:07 +09:00 committed by GitHub
parent 8c6e74eed4
commit 53d1ae096a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -95,13 +95,6 @@ func discoverPMP() Interface {
return nil
}
var (
// LAN IP ranges
_, lan10, _ = net.ParseCIDR("10.0.0.0/8")
_, lan176, _ = net.ParseCIDR("172.16.0.0/12")
_, lan192, _ = net.ParseCIDR("192.168.0.0/16")
)
// TODO: improve this. We currently assume that (on most networks)
// the router is X.X.X.1 in a local LAN range.
func potentialGateways() (gws []net.IP) {
@ -116,7 +109,7 @@ func potentialGateways() (gws []net.IP) {
}
for _, addr := range ifaddrs {
if x, ok := addr.(*net.IPNet); ok {
if lan10.Contains(x.IP) || lan176.Contains(x.IP) || lan192.Contains(x.IP) {
if x.IP.IsPrivate() {
ip := x.IP.Mask(x.Mask).To4()
if ip != nil {
ip[3] = ip[3] | 0x01