### Platform Support The following shows dns module APIs available for each platform. | | Linux
(Ubuntu) | Raspbian
(Raspberry Pi) | NuttX
(STM32F4-Discovery) | TizenRT
(Artik053) | | :---: | :---: | :---: | :---: | :---: | | dns.lookup | O | O | X | O | ※ dns.lookup currently only returns IPv4 addresses. Support for IPv6 addresses are on the roadmap. # DNS The `dns` module provides a method to perform host name resolution. The functionality is implemented on top of the underlying operation system facilities. Please see [Implementation considerations section](#implementation-considerations). The following properties are flags which can be passed as hints for the [`dns.lookup()`](#dnslookuphostname-options-callback) method. ### dns.ADDRCONFIG * `{number}` Returned address types are determined by the types of addresses supported by the current system. ### dns.V4MAPPED * `{number}` If the IPv6 family was specified, but no IPv6 addresses were found, then return IPv4 mapped IPv6 addresses. ### dns.lookup(hostname[, options], callback) * `hostname` {string} Hostname to be resolved. * `options` {Object|number} * `family` {number} The record family. If specified must be 4. Specifies that IPv4 addresses should be returned. * `hints` {number} One or more supported getaddrinfo flags. Multiple flags may be passed by bitwise `OR`ing their values. * `callback` {Function} * `err` {Error|null} If there is no error the value is `null`. * `address` {string} A string representation of an IPv4 address. * `family` {number} 4, denoting the family of `address`. Resolves a hostname (e.g. `iotjs.net`) into the first found A (IPv4) or AAAA (IPv6) record. All `option` properties are option. If `option` is a number, then it must be `4`. If `options` is not provided, then IPv4 addresses are returned if found. On error, `err` is an `Error` object where `err.code` is the error code returned by the underlying system call. The `dns.lookup()` does not necessarily do DNS requests to resolve a hostname. The implementation uses an operating system facility to associate names with addresses. Please read the [Implementation considerations section](#implementation-considerations) for more system dependent information. **Example** ```js var dns = require('dns'); dns.lookup ('localhost', 4, function(err, ip, family) { console.log('ip: ' + ip + ' family: ' + family); }); // ip: 127.0.0.1 family: 4 var options = { family: 4, hints: dns.ADDRCONFIG, }; dns.lookup ('iotjs.net', options, function(err, ip, family) { console.log('ip: ' + ip + ' family: ' + family); }); // ip: 192.30.252.154 family: 4 ``` # Implementation considerations The current implementation only supports host name resolution to IPv4 addresses. On NuttX currently only valid IPv4 addresses are allowed for the [`dns.lookup()`](#dnslookuphostname-options-callback) method.