ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
ip.h File Reference

🌍 IP Address Parsing and Formatting Utilities More...

Go to the source code of this file.

Functions

int is_valid_ipv4 (const char *ip)
 Check if a string is a valid IPv4 address.
 
int is_valid_ipv6 (const char *ip)
 Check if a string is a valid IPv6 address.
 
int parse_ipv6_address (const char *input, char *output, size_t output_size)
 Parse IPv6 address, removing brackets if present.
 
int parse_ip_with_port (const char *input, char *ip_output, size_t ip_output_size, uint16_t *port_output)
 Parse IP address and port from string.
 
int parse_address_with_optional_port (const char *input, char *address_output, size_t address_output_size, uint16_t *port_output, uint16_t default_port)
 Parse address with optional port from string.
 
asciichat_error_t format_ip_address (int family, const struct sockaddr *addr, char *output, size_t output_size)
 Format IP address from socket address structure.
 
asciichat_error_t format_ip_with_port (const char *ip, uint16_t port, char *output, size_t output_size)
 Format IP address with port number.
 
int get_ip_version (const char *ip)
 Get IP address version.
 
int is_valid_ip (const char *ip)
 Check if string is a valid IP address (IPv4 or IPv6)
 
int ip_equals (const char *ip1, const char *ip2)
 Compare two IP addresses for equality.
 
int ip_compare (const char *ip1, const char *ip2)
 Compare two IP addresses for sorting.
 
int compare_ip_port_strings (const char *ip_port1, const char *ip_port2)
 Compare two "IP:port" strings with IPv6 normalization.
 
int parse_cidr (const char *cidr, char *ip_out, size_t ip_out_size, int *prefix_out)
 Parse CIDR notation into IP and prefix length.
 
int ip_in_cidr (const char *ip, const char *cidr)
 Check if IP address is within CIDR range.
 
int ip_in_cidr_parsed (const char *ip, const char *network, int prefix_len)
 Check if IP is within CIDR range (parsed form)
 
asciichat_error_t ipv4_to_ipv6_mapped (const char *ipv4, char *ipv6_out, size_t out_size)
 Convert IPv4 address to IPv6-mapped format.
 
asciichat_error_t extract_ipv4_from_mapped_ipv6 (const char *ipv6, char *ipv4_out, size_t out_size)
 Extract IPv4 address from IPv6-mapped format.
 
int is_ipv4_mapped_ipv6 (const char *ipv6)
 Check if IPv6 address is IPv4-mapped.
 
asciichat_error_t canonicalize_ipv6 (const char *ipv6, char *canonical_out, size_t out_size)
 Canonicalize IPv6 address to standard form.
 
asciichat_error_t expand_ipv6 (const char *ipv6, char *expanded_out, size_t out_size)
 Expand IPv6 address to full form.
 
asciichat_error_t compact_ipv6 (const char *ipv6, char *compact_out, size_t out_size)
 Compress IPv6 address using :: notation.
 
int is_anycast_ipv6 (const char *ipv6)
 Check if IPv6 address is anycast.
 
int is_lan_ipv4 (const char *ip)
 Check if IPv4 address is a private/LAN address.
 
int is_lan_ipv6 (const char *ip)
 Check if IPv6 address is a private/LAN address.
 
int is_broadcast_ipv4 (const char *ip)
 Check if IPv4 address is a broadcast address.
 
int is_broadcast_ipv6 (const char *ip)
 Check if IPv6 address is a multicast address.
 
int is_localhost_ipv4 (const char *ip)
 Check if IPv4 address is localhost.
 
int is_localhost_ipv6 (const char *ip)
 Check if IPv6 address is localhost.
 
int is_link_local_ipv4 (const char *ip)
 Check if IPv4 address is a link-local address.
 
int is_link_local_ipv6 (const char *ip)
 Check if IPv6 address is a link-local address.
 
int is_internet_ipv4 (const char *ip)
 Check if IPv4 address is a public internet address.
 
int is_internet_ipv6 (const char *ip)
 Check if IPv6 address is a public internet address.
 
int extract_ip_from_address (const char *addr_with_port, char *ip_out, size_t ip_out_size)
 Extract IP address (without port) from formatted address string.
 
const char * get_ip_type_string (const char *ip)
 Get human-readable string describing IP address type.
 

Detailed Description

🌍 IP Address Parsing and Formatting Utilities

Definition in file ip.h.