ipaddr_local - resolve the address of a local network interface
#include <libdill.h>
int ipaddr_local(
struct ipaddr* addr,
const char* name,
int port,
int mode);
Converts an IP address in human-readable format, or a name of a local network interface into an ipaddr structure.
Mode specifies which kind of addresses should be returned. Possible values are:
Setting the argument to zero invokes default behaviour, which, at the present, is IPADDR_PREF_IPV4. However, in the future when IPv6 becomes more common it may be switched to IPADDR_PREF_IPV6.
addr: Out parameter, The IP address object.
name: Name of the local network interface, such as "eth0", "192.168.0.111" or "::1".
port: Port number. Valid values are 1-65535.
mode: What kind of address to return. See above.
This function is not available if libdill is compiled with --disable-sockets option.
In case of success the function returns 0. In case of error it returns -1 and sets errno to one of the values below.
struct ipaddr addr;
ipaddr_local(&addr, "eth0", 5555, 0);
int s = socket(ipaddr_family(addr), SOCK_STREAM, 0);
bind(s, ipaddr_sockaddr(&addr), ipaddr_len(&addr));
ipaddr_equal(3) ipaddr_family(3) ipaddr_len(3) ipaddr_port(3) ipaddr_remote(3) ipaddr_remotes(3) ipaddr_setport(3) ipaddr_sockaddr(3) ipaddr_str(3)