---
name: "dns_ip6"
section: "3"
platform: "linux"
package: "libowfat-dev"
version: "0.32-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/dns_ip6"
---

# dns\_ip6(3)

look up IPv6 addresses

## NAME

dns\_ip6 - look up IPv6 addresses

## SYNTAX

**#include \<libowfat/dns.h\>**

int **dns\_ip6**(stralloc\* *out*,stralloc\* *fqdn*);

## DESCRIPTION

dns\_ip6 looks up 16-byte IPv6 addresses for the fully-qualified domain name in *fqdn*. It puts the concatenation of the IPv6 addresses into *out* and returns 0. If the domain does not exist in DNS, or has no IP addresses, *out* will be empty.

dns\_ip6 also looks up 4-byte IPv4 addresses and converts them into IPv4-mapped IPv6 addresses (::ffff:1.2.3.4) to provide easy backwards compatibility for IPv6 applications.

If dns\_ip6 has trouble with the DNS lookup or runs out of memory, it returns -1, setting errno appropriately. It may or may not change *out*.

If *fqdn* is an IPv6 address, dns\_ip6 puts that IP address into *out* without checking DNS.  IPv4 addresses are also used directly without DNS lookup.

## SEE ALSO

[dns\_ip6\_packet(3)](/dns_ip6_packet/3.md), [dns\_ip4(3)](/dns_ip4/3.md), [dns\_name6(3)](/dns_name6/3.md)
