.TH dns_name6 3 .SH NAME dns_name6 \- find FQDNs for IP addresses .SH SYNTAX .B #include void \fBdns_name6\fP(&\fIout\fR,\fIip\fR); .br void \fBdns_name_packet\fP(&\fIout\fR,char *\fIbuf\fR,unsigned int \fIlen\fR); .br void \fBdns_name6_domain\fP(\fIq\fR,\fIip\fR); stralloc \fIout\fR = {0}; .br char \fIip\fR[16]; .br char \fIq\fR[DNS_NAME6_DOMAIN]; .SH DESCRIPTION .B dns_name16 looks up the domain name for the 16-byte IP address in \fIip\fR. It puts the (first) domain name into \fIout\fR and returns 0. If the relevant ip6.int domain does not exist in DNS, or has no PTR records, \fIout\fR will be empty. If \fBdns_name6\fR has trouble with the DNS lookup or runs out of memory, it returns -1, setting \fIerrno\fR appropriately. It may or may not change \fIout\fR. .B dns_name_packet is a low-level component of \fBdns_name6\fR, designed to support asynchronous DNS lookups. It reads a DNS packet of length \fIlen\fR from \fIbuf\fR, extracts the first PTR record from the answer section of the packet, puts the result into \fIout\fR, and returns 0 or -1 the same way as \fIdns_name6\fR. .B dns_name6_domain is another low-level component of \fBdns_name6\fR. It converts an IP address such as 4321:0:1:2:3:4:567:89ab into a domain name such as b.a.9.8.7.6.5.0.4.0.0.0.3.0.0.0.2.0.0.0.1.0.0.0.0.0.0.0.1.2.3.4.IP6.INT. and places the packet-encoded domain name into \fIq\fR. .SH "SEE ALSO" dns_ip6_qualify(3), dns_name4(3)