#ifndef IPUTILS_H #define IPUTILS_H #include #include #include #include uint32_t IPUtils_CIDRToMaskv4(uint8_t cidr); uint8_t IPUtils_MaskToCIDRv4(uint32_t mask); bool IPUtils_MatchPrefixv4(uint32_t ip, uint32_t prefix, uint8_t cidr); // If buf is NULL, -> stdout; if NOT NULL, -> buf (must be at least 16 bytes) void IPUtils_PrintIPv4(uint32_t ip, char* buf); bool IPUtils_IsInSubnetv4(uint32_t ip, uint32_t subnet, uint32_t mask); __uint128_t IPUtils_CIDRToMaskv6(uint8_t cidr); uint8_t IPUtils_MaskToCIDRv6(__uint128_t mask); bool IPUtils_MatchPrefixv6(__uint128_t ip, __uint128_t prefix, uint8_t cidr); // If buf is NULL, -> stdout; if NOT NULL, -> buf (must be at least 40 bytes) void IPUtils_PrintIPv6(__uint128_t ip, char* buf); bool IPUtils_IsInSubnetv6(__uint128_t ip, __uint128_t subnet, __uint128_t mask); #endif