Files
miniroute/include/iputils.h
2026-06-05 15:13:39 +02:00

24 lines
871 B
C

#ifndef IPUTILS_H
#define IPUTILS_H
#include <stdint.h>
#include <stdbool.h>
#include <stdio.h>
#include <string.h>
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