24 lines
871 B
C
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
|