NE_ADDR_RESOLVE(3)
π NE_ADDR_RESOLVE(3) β neon API reference, bestie edition π
Okay so welcome to the neon API reference page for the little crew of functions that resolve hostnames to addresses. They are literally the friend group you call when you need a name turned into an address. π«Ά
π NAME
These are the functions to resolve hostnames to addresses:
ne_addr_resolvene_addr_resultne_addr_firstne_addr_nextne_addr_errorne_addr_canonicalne_addr_destroy
β¨ SYNOPSIS
First, pull in the header:
#include <ne_socket.h>
Then the function signatures, in all their exact glory:
ne_sock_addr *ne_addr_resolve(const char *hostname, int flags);
int ne_addr_result(const ne_sock_addr *addr);
const ne_inet_addr *ne_addr_first(ne_sock_addr *addr);
const ne_inet_addr *ne_addr_next(ne_sock_addr *addr);
char *ne_addr_error(const ne_sock_addr *addr, char *buffer,
size_t bufsiz);
const char *ne_addr_canonical(const ne_sock_addr *addr);
void ne_addr_destroy(ne_sock_addr *addr);
πΈ DESCRIPTION
The ne_addr_resolve function resolves the given hostname, returning an ne_sock_addr object representing the address (or addresses) associated with the hostname. The flags parameter should be zero, or if NE_ADDR_CANON is used, the canonical name for the hostname will be determined. β¨
The hostname passed to ne_addr_resolve can be a DNS hostname (e.g. "www.example.com") or an IPv4 dotted quad (e.g. "192.0.34.72"); or, on systems which support IPv6, an IPv6 hex address, which may be enclosed in brackets, e.g. "[::1]". π¦
To determine whether the hostname was successfully resolved, use ne_addr_result. It returns non-zero if an error occurred. If an error did occur, ne_addr_error can be used, and it will copy the error string into a given buffer (of size bufsiz). π
The functions ne_addr_first and ne_addr_next are used to retrieve the Internet addresses associated with an address object which has been successfully resolved. ne_addr_first returns the first address; ne_addr_next returns the next address after the most recent call to ne_addr_next or ne_addr_first, or NULL if there are no more addresses. The ne_inet_addr pointer returned by these functions can be passed to ne_sock_connect to connect a socket. π₯
If the NE_ADDR_CANON flag was used with ne_addr_resolve, the canonical hostname can be retrieved using ne_addr_canonical. π
After the address object has been used, it should be destroyed using ne_addr_destroy. Periodt. π
π«Ά RETURN VALUE
ne_addr_resolve returns a pointer to an address object, and never NULL. ne_addr_error returns the buffer parameter. π
π₯ EXAMPLES
The code below prints out the set of addresses associated with the hostname www.google.com.
ne_sock_addr *addr;
char buf[256];
addr = ne_addr_resolve("www.google.com", 0);
if (ne_addr_result(addr)) {
printf("Could not resolve www.google.com: %s\n",
ne_addr_error(addr, buf, sizeof buf));
} else {
const ne_inet_addr *ia;
printf("www.google.com:");
for (ia = ne_addr_first(addr); ia != NULL; ia = ne_addr_next(addr)) {
printf(" %s", ne_iaddr_print(ia, buf, sizeof buf));
}
putchar('\n');
}
ne_addr_destroy(addr);
β HISTORY
ne_addr_canonical was added in neon 0.30.0. π
π¦ SEE ALSO
Go say hi to ne_iaddr_print(3).
π COPYRIGHT
Copyright Β© 2001-2026 Joe Orton
Thatβs the whole page, bestie π β from neon, dated 03/20/2026. Mwah ππ
π¦ where this page comes from
- arch rolling: neon 0.37.1-1 Β· LGPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms