# node:dns

> How Elide supports Node's `dns` and `dns/promises` modules: Resolver and every resolve* record type match Node, and `lookup` uses the host resolver.

`node:dns` and `node:dns/promises` match [Node's `dns`](https://nodejs.org/api/dns.html), including `Resolver` and every
`resolve*` record type. `lookup` uses the host resolver, so `lookup("localhost")` works offline.

## Example

```js
// dns.mjs
import { lookup } from "node:dns/promises";
import { isIP } from "node:net";

const { address, family } = await lookup("localhost", { family: 4 });
console.log(address, family);
const all = await lookup("localhost", { all: true });
console.log(all.every((entry) => isIP(entry.address) === entry.family));
```

`elide run dns.mjs` prints:

```text
127.0.0.1 4
true
```

<!-- api-reference:start ae1e1c55e637 -->
## Reference

**Status:** Full · 17 of 20 suite tests pass (85.0%)

### `dns` exports

`Resolver`, `getDefaultResultOrder`, `getServers`, `lookup`, `lookupService`, `promises`, `resolve`, `resolve4`, `resolve6`, `resolveAny`, `resolveCaa`, `resolveCname`, `resolveMx`, `resolveNaptr`, `resolveNs`, `resolvePtr`, `resolveSoa`, `resolveSrv`, `resolveTlsa`, `resolveTxt`, `reverse`, `setDefaultResultOrder`, `setServers`, 27 constants such as `ADDRCONFIG`

**Tests:** [node-api `node:dns`](https://github.com/elide-dev/testsuite/blob/main/reports/1.6.0%2B6e718933f/4cbcae6c33a8/node-api/node-api.md): 17 pass, 3 fail, 0 error, 10 skipped. Failing: `test-dns-get-server.js`, `test-dns-setserver-when-querying.js`, `test-dns.js`.
<!-- api-reference:end -->
