File: //opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/utils/net.py
from ipaddress import IPv4Address, IPv4Network, IPv6Address, IPv6Network
from typing import Tuple, Union
TCP = "tcp"
IN, OUT = "in", "out"
def pack_ip_address(ip_address: Union[IPv4Address, IPv6Address]):
if ip_address.version == 6:
return int.from_bytes(ip_address.packed[:8], "big", signed=True)
else:
return int(ip_address)
def pack_ip_network(
ip_network: Union[IPv4Network, IPv6Network]
) -> Tuple[int, int, int]:
net = pack_ip_address(ip_network.network_address)
mask = pack_ip_address(ip_network.netmask)
return net, mask, ip_network.version