|
#define | QSC_IPINFO_IPV4_BYTELEN 0x04U |
| The IPv4 byte array length.
|
|
#define | QSC_IPINFO_IPV4_MINLEN 0x08U |
| The minimum IPv4 string length.
|
|
#define | QSC_IPINFO_IPV4_STRNLEN 0x16U |
| The IPv4 string length.
|
|
#define | QSC_IPINFO_IPV4_MASK_STRNLEN 0x10U |
| The IPv4 subnet mask string length.
|
|
#define | QSC_IPINFO_IPV6_BYTELEN 0x10U |
| The IPv6 byte array length.
|
|
#define | QSC_IPINFO_IP_MAX_BYTELEN (QSC_IPINFO_IPV6_BYTELEN) |
| The maximum IP byte array length.
|
|
#define | QSC_IPINFO_IPV6_STRNLEN 0x41U |
| The IPv6 string length.
|
|
#define | QSC_IPINFO_IPV6_MASK_STRNLEN 0x41U |
| The IPv6 subnet mask string length.
|
|
#define | QSC_IPINFO_MAX_SIZE (QSC_IPINFO_IPV6_STRNLEN) |
| The maximum IP string length.
|
|
|
QSC_EXPORT_API qsc_ipinfo_address_types | qsc_ipinfo_get_address_type (const char *address) |
| Determine the IP address type from a string.
|
|
QSC_EXPORT_API qsc_ipinfo_ipv4_address | qsc_ipinfo_ipv4_address_any (void) |
| Use the device's primary IPv4 address.
|
|
QSC_EXPORT_API void | qsc_ipinfo_ipv4_address_clear (qsc_ipinfo_ipv4_address *address) |
| Clear the IPv4 address structure.
|
|
QSC_EXPORT_API qsc_ipinfo_ipv4_address | qsc_ipinfo_ipv4_address_from_array (const uint8_t *address) |
| Instantiate an IPv4 address structure from a byte array.
|
|
QSC_EXPORT_API qsc_ipinfo_ipv4_address | qsc_ipinfo_ipv4_address_from_bytes (uint8_t a1, uint8_t a2, uint8_t a3, uint8_t a4) |
| Instantiate an IPv4 address structure from individual bytes.
|
|
QSC_EXPORT_API qsc_ipinfo_ipv4_address | qsc_ipinfo_ipv4_address_from_string (const char input[QSC_IPINFO_IPV4_STRNLEN]) |
| Instantiate an IPv4 address structure from a string.
|
|
QSC_EXPORT_API bool | qsc_ipinfo_ipv4_address_is_equal (const qsc_ipinfo_ipv4_address *a, const qsc_ipinfo_ipv4_address *b) |
| Compare two IPv4 address structures for equality.
|
|
QSC_EXPORT_API bool | qsc_ipinfo_ipv4_address_is_routable (const qsc_ipinfo_ipv4_address *address) |
| Test if the IPv4 address is a valid public address.
|
|
QSC_EXPORT_API bool | qsc_ipinfo_ipv4_address_is_valid (const qsc_ipinfo_ipv4_address *address) |
| Test if the IPv4 address is valid.
|
|
QSC_EXPORT_API bool | qsc_ipinfo_ipv4_address_string_is_valid (const char *address) |
| Test if the IPv4 address string is valid.
|
|
QSC_EXPORT_API bool | qsc_ipinfo_ipv4_address_is_zeroed (const qsc_ipinfo_ipv4_address *address) |
| Test if the IPv4 address is zeroed.
|
|
QSC_EXPORT_API qsc_ipinfo_ipv4_address | qsc_ipinfo_ipv4_address_loopback (void) |
| Get a copy of the IPv4 loopback address.
|
|
QSC_EXPORT_API void | qsc_ipinfo_ipv4_address_get_mask (char mask[QSC_IPINFO_IPV4_MASK_STRNLEN], const qsc_ipinfo_ipv4_address *address) |
| Get the IPv4 network subnet mask string.
|
|
QSC_EXPORT_API uint8_t | qsc_ipinfo_ipv4_address_get_cidr_mask (const qsc_ipinfo_ipv4_address *address) |
| Get the IPv4 network subnet CIDR length.
|
|
QSC_EXPORT_API void | qsc_ipinfo_ipv4_address_to_array (uint8_t *output, const qsc_ipinfo_ipv4_address *address) |
| Serialize an IPv4 address structure to a byte array.
|
|
QSC_EXPORT_API void | qsc_ipinfo_ipv4_address_to_string (char output[QSC_IPINFO_IPV4_STRNLEN], const qsc_ipinfo_ipv4_address *address) |
| Serialize an IPv4 address structure to a string.
|
|
QSC_EXPORT_API void | qsc_ipinfo_ipv4_array_to_string (char output[QSC_IPINFO_IPV4_STRNLEN], const uint8_t *address) |
| Convert an IPv4 address array to a string.
|
|
QSC_EXPORT_API qsc_ipv6_address_prefix_types | qsc_ipinfo_ipv6_address_type (const qsc_ipinfo_ipv6_address *address) |
| Get the IPv6 address routing prefix type.
|
|
QSC_EXPORT_API qsc_ipinfo_ipv6_address | qsc_ipinfo_ipv6_address_any (void) |
| Get a copy of the IPv6 loopback address.
|
|
QSC_EXPORT_API void | qsc_ipinfo_ipv6_address_clear (qsc_ipinfo_ipv6_address *address) |
| Clear the IPv6 address structure.
|
|
QSC_EXPORT_API qsc_ipinfo_ipv6_address | qsc_ipinfo_ipv6_address_from_array (const uint8_t *address) |
| Instantiate an IPv6 address structure from a byte array.
|
|
QSC_EXPORT_API qsc_ipinfo_ipv6_address | qsc_ipinfo_ipv6_address_from_string (const char input[QSC_IPINFO_IPV6_STRNLEN]) |
| Instantiate an IPv6 address structure from a string.
|
|
QSC_EXPORT_API bool | qsc_ipinfo_ipv6_address_is_equal (const qsc_ipinfo_ipv6_address *a, const qsc_ipinfo_ipv6_address *b) |
| Compare two IPv6 address structures for equality.
|
|
QSC_EXPORT_API bool | qsc_ipinfo_ipv6_address_is_routable (const qsc_ipinfo_ipv6_address *address) |
| Test if the IPv6 address is a valid public address.
|
|
QSC_EXPORT_API bool | qsc_ipinfo_ipv6_address_is_valid (const qsc_ipinfo_ipv6_address *address) |
| Test if the IPv6 address is valid.
|
|
QSC_EXPORT_API bool | qsc_ipinfo_ipv6_address_string_is_valid (const char *address) |
| Test if the IPv6 address string is valid.
|
|
QSC_EXPORT_API bool | qsc_ipinfo_ipv6_address_is_zeroed (const qsc_ipinfo_ipv6_address *address) |
| Test if the IPv6 address is zeroed.
|
|
QSC_EXPORT_API qsc_ipinfo_ipv6_address | qsc_ipinfo_ipv6_address_loopback (void) |
| Get a copy of the IPv6 loopback address.
|
|
QSC_EXPORT_API void | qsc_ipinfo_ipv6_address_get_mask (char mask[QSC_IPINFO_IPV6_MASK_STRNLEN], const qsc_ipinfo_ipv6_address *address) |
| Get the IPv6 network subnet mask string.
|
|
QSC_EXPORT_API uint8_t | qsc_ipinfo_ipv6_address_get_cidr_mask (const qsc_ipinfo_ipv6_address *address) |
| Get the IPv6 network subnet CIDR length.
|
|
QSC_EXPORT_API void | qsc_ipinfo_ipv6_address_to_array (uint8_t *output, const qsc_ipinfo_ipv6_address *address) |
| Serialize an IPv6 address structure to a byte array.
|
|
QSC_EXPORT_API void | qsc_ipinfo_ipv6_address_to_string (char output[QSC_IPINFO_IPV6_STRNLEN], const qsc_ipinfo_ipv6_address *address) |
| Serialize an IPv6 address structure to a string.
|
|
QSC_EXPORT_API void | qsc_ipinfo_ipv6_array_to_string (char output[QSC_IPINFO_IPV6_STRNLEN], const uint8_t *address) |
| Convert an IPv6 address array to a string.
|
|
QSC_EXPORT_API uint8_t | qsc_ipinfo_ipv4_mask_to_cidr (const char mask[QSC_IPINFO_IPV4_MASK_STRNLEN]) |
| Convert a subnet mask string to a CIDR mask.
|
|
QSC_EXPORT_API void | qsc_ipinfo_ipv4_cidr_to_mask (char mask[QSC_IPINFO_IPV4_MASK_STRNLEN], uint8_t cidr) |
| Convert a CIDR mask to a subnet mask string.
|
|
IP information function definitions.
This header provides functions for working with IP addresses, including determining the type of an IP address, creating and comparing IPv4 and IPv6 address structures, serializing and deserializing IP addresses, and converting between various representations such as strings, arrays, and CIDR masks.
ipinfo_t info;
if (ipinfo_parse("192.168.1.1", &info)) {
}
Reference Links: