How to format IPv6 address in groups of 32 bits in Python
def format_ipv6addr_group2(addr):
"""
Format IPv6 addresses in 4 \n-separated groups of 32 bits
Returns a string
"""
addr_s = str(addr.exploded)
return f"{addr_s[:10]}\n{addr_s[10:20]}\n{addr_s[20:30]}\n{addr_s[30:40]}"
Usage example:
addr = ipaddress.IPv6Address("fd66:6cbb:8c10:1234:4567:89ab:cdef:0123")
print(format_ipv6addr_group2(addr))
Output:
fd66:6cbb:
8c10:1234:
4567:89ab:
cdef:0123