Source code for multiaddr.codecs.ip4
import netaddr
from ..codecs import CodecBase
from ..exceptions import BinaryParseError
SIZE = 32
IS_PATH = False
[docs]
class Codec(CodecBase):
SIZE = SIZE
IS_PATH = IS_PATH
[docs]
def to_bytes(self, proto, string):
return netaddr.IPAddress(string, version=4).packed
[docs]
def to_string(self, proto, buf):
try:
return str(netaddr.IPAddress(int.from_bytes(buf, byteorder="big"), version=4))
except (ValueError, netaddr.AddrFormatError):
raise BinaryParseError("Invalid IPv4 address bytes", buf, "ip4")