@@ -1052,48 +1052,3 @@ func PrivateKeyFromHex(keyHex string) (crypto.PrivKey, error) {
10521052
10531053 return priv , nil
10541054}
1055-
1056- // filterPrivateAddrs filters out private/local IP addresses from a list of multiaddrs.
1057- // Returns only public routable addresses suitable for cloud/shared hosting environments.
1058- func filterPrivateAddrs (addrs []multiaddr.Multiaddr ) []multiaddr.Multiaddr {
1059- filtered := make ([]multiaddr.Multiaddr , 0 , len (addrs ))
1060-
1061- for _ , addr := range addrs {
1062- // Convert multiaddr to net.Addr to check if it's private
1063- netAddr , err := manet .ToNetAddr (addr )
1064- if err != nil {
1065- // If we can't parse it, skip it
1066- continue
1067- }
1068-
1069- // Extract IP address
1070- var ip net.IP
1071- switch v := netAddr .(type ) {
1072- case * net.TCPAddr :
1073- ip = v .IP
1074- case * net.UDPAddr :
1075- ip = v .IP
1076- default :
1077- // Unknown address type, skip it
1078- continue
1079- }
1080-
1081- // Filter out private/local addresses
1082- if isPrivateIP (ip ) {
1083- continue
1084- }
1085-
1086- filtered = append (filtered , addr )
1087- }
1088-
1089- return filtered
1090- }
1091-
1092- // isPrivateIP checks if an IP address is private or local using Go's standard library.
1093- // Returns true for:
1094- // - RFC1918 private networks (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) via IP.IsPrivate()
1095- // - Link-local, loopback, and multicast addresses via built-in methods
1096- // - IPv6 unique local addresses (fc00::/7) via IP.IsPrivate()
1097- func isPrivateIP (ip net.IP ) bool {
1098- return ip .IsPrivate () || ip .IsLoopback () || ip .IsLinkLocalUnicast () || ip .IsLinkLocalMulticast ()
1099- }
0 commit comments