ascii-chat 0.6.0
Real-time terminal-based video chat with ASCII art conversion
Loading...
Searching...
No Matches
ip.h
Go to the documentation of this file.
1#pragma once
2
47#include <stdint.h>
48#include <stddef.h>
49#include "common.h"
50
51/* ============================================================================
52 * IP Address Validation Functions
53 * @{
54 */
55
77int is_valid_ipv4(const char *ip);
78
101int is_valid_ipv6(const char *ip);
102
105/* ============================================================================
106 * IP Address Parsing Functions
107 * @{
108 */
109
133int parse_ipv6_address(const char *input, char *output, size_t output_size);
134
168int parse_ip_with_port(const char *input, char *ip_output, size_t ip_output_size, uint16_t *port_output);
169
223int parse_address_with_optional_port(const char *input, char *address_output, size_t address_output_size,
224 uint16_t *port_output, uint16_t default_port);
225
228/* ============================================================================
229 * IP Address Formatting Functions
230 * @{
231 */
232
265asciichat_error_t format_ip_address(int family, const struct sockaddr *addr, char *output, size_t output_size);
266
297asciichat_error_t format_ip_with_port(const char *ip, uint16_t port, char *output, size_t output_size);
298
unsigned short uint16_t
Definition common.h:57
asciichat_error_t
Error and exit codes - unified status values (0-255)
Definition error_codes.h:46
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.
Definition ip.c:230
int is_valid_ipv4(const char *ip)
Check if a string is a valid IPv4 address.
Definition ip.c:22
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.
Definition ip.c:305
int is_valid_ipv6(const char *ip)
Check if a string is a valid IPv6 address.
Definition ip.c:77
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.
Definition ip.c:379
int parse_ipv6_address(const char *input, char *output, size_t output_size)
Parse IPv6 address, removing brackets if present.
Definition ip.c:167
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.
Definition ip.c:205