ne_iaddr_make 3 ne_iaddr_make ne_iaddr_cmp ne_iaddr_print ne_iaddr_free functions to manipulate and compare network addresses #include <ne_socket.h> typedef enum { ne_iaddr_ipv4 = 0, ne_iaddr_ipv6 } ne_iaddr_type; ne_inet_addr *ne_iaddr_make ne_iaddr_type type const unsigned char *raw int ne_iaddr_cmp const ne_inet_addr *i1 const ne_inet_addr *i2 char *ne_iaddr_print const ne_inet_addr *ia char *buffer size_t bufsiz void ne_iaddr_free const ne_inet_addr *addr Description ne_iaddr_make creates an ne_inet_addr object from a raw binary network address; for instance the four bytes 0x7f 0x00 0x00 0x01 represent the IPv4 address 127.0.0.1. The object returned is suitable for passing to ne_sock_connect. A binary IPv4 address contains four bytes; a binary IPv6 address contains sixteen bytes; addresses passed must be in network byte order. ne_iaddr_cmp can be used to compare two network addresses; returning zero only if they are identical. The addresses need not be of the same address type; if the addresses are not of the same type, the return value is guaranteed to be non-zero. ne_iaddr_print can be used to print the human-readable string representation of a network address into a buffer, for instance the string "127.0.0.1". ne_iaddr_free releases the memory associated with a network address object. Return value ne_iaddr_make returns &null; if the address type passed is not supported (for instance on a platform which does not support IPv6). ne_iaddr_print returns the buffer pointer, and never &null;. Examples The following example connects a socket to port 80 at the address 127.0.0.1. unsigned char addr[] = "\0x7f\0x00\0x00\0x01"; ne_inet_addr *ia; ia = ne_iaddr_make(ne_iaddr_ipv4, addr); if (ia != NULL) { ne_socket *sock = ne_sock_connect(ia, 80); ne_iaddr_free(ia); /* ... */ } else { /* ... */ } See also