Skip to content

No interface_multiaddrs() function returning Multiaddr objects #122

Description

@sumanjeet0012

Go's manet package provides InterfaceMultiaddrs() which returns all local interface addresses as Multiaddr objects. Python has get_network_addrs() in utils.py but it returns raw IP strings, not Multiaddr objects.

Problem

Go:

addrs, _ := manet.InterfaceMultiaddrs()
// Returns: [Multiaddr("/ip4/192.168.1.100"), Multiaddr("/ip6/fe80::1"), ...]

Python:

addrs = get_network_addrs(4)
# Returns: ["192.168.1.100"]  ← Raw strings, not Multiaddr objects

Proposed Solution

Add interface_multiaddrs():

def interface_multiaddrs() -> list[Multiaddr]:
    """Return all local interface addresses as Multiaddr objects.

    Excludes link-local IPv6 addresses.
    """
    result = []
    for ip_str in get_network_addrs(4):
        result.append(Multiaddr(f"/ip4/{ip_str}"))
    for ip_str in get_network_addrs(6):
        result.append(Multiaddr(f"/ip6/{ip_str}"))
    return result

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions