23#ifndef FIFTYONE_DEGREES_IP_H_INCLUDED
24#define FIFTYONE_DEGREES_IP_H_INCLUDED
26#ifdef FIFTYONE_DEGREES_IPI_SYMBOLS
27#include "ipiSymbols.h"
53#define FIFTYONE_DEGREES_IPV4_LENGTH 4
58#define FIFTYONE_DEGREES_IPV6_LENGTH 16
63typedef enum e_fiftyone_degrees_ip_type {
72typedef struct fiftyone_degrees_ip_address_t {
104 const unsigned char *ipAddress1,
105 const unsigned char *ipAddress2,
bool fiftyoneDegreesIpAddressParse(const char *start, const char *end, fiftyoneDegreesIpAddress *address)
Parse a single IP address string.
fiftyoneDegreesIpType
Enum indicating the type of IP address.
Definition ip.h:63
#define FIFTYONE_DEGREES_IPV6_LENGTH
The number of bytes in an Ipv6 Address.
Definition ip.h:58
int fiftyoneDegreesIpAddressesCompare(const unsigned char *ipAddress1, const unsigned char *ipAddress2, fiftyoneDegreesIpType type)
Compare two IP addresses in its binary form.
@ FIFTYONE_DEGREES_IP_TYPE_INVALID
Invalid IP address.
Definition ip.h:64
@ FIFTYONE_DEGREES_IP_TYPE_IPV4
An IPv4 address.
Definition ip.h:65
@ FIFTYONE_DEGREES_IP_TYPE_IPV6
An IPv6 address.
Definition ip.h:66
The structure to hold a IP Address in byte array format.
Definition ip.h:72
byte type
The type of the IP.
Definition ip.h:75
byte value[FIFTYONE_DEGREES_IPV6_LENGTH]
Buffer to hold the IP address bytes array.
Definition ip.h:73