function
dns.lookup
hostname: string,
options?: { backend: 'system' | 'libc' | 'c-ares' | 'getaddrinfo'; family: 0 | 'IPv4' | 'IPv6' | 4 | 6 | 'any'; flags: number; port: number; socketType: 'udp' | 'tcp' }
Look up the IP address for a hostname
Uses non-blocking APIs by default
@param hostname
The hostname to lookup
@param options
Options for the lookup
Basic usage#
const [{ address }] = await Bun.dns.lookup('example.com');Filter results to IPv4#
import { dns } from 'bun';
const [{ address }] = await dns.lookup('example.com', {family: 4});
console.log(address); // "123.122.22.126"Filter results to IPv6#
import { dns } from 'bun';
const [{ address }] = await dns.lookup('example.com', {family: 6});
console.log(address); // "2001:db8::1"DNS resolver client#
Bun supports three DNS resolvers:
c-ares- Uses the c-ares library to perform DNS resolution. This is the default on Linux.system- Uses the system's non-blocking DNS resolver API if available, falls back togetaddrinfo. This is the default on macOS and the same asgetaddrinfoon Linux.getaddrinfo- Uses the POSIX standardgetaddrinfofunction. Causes performance issues under concurrent loads.
To customize the DNS resolver, pass a backend option to dns.lookup:
import { dns } from 'bun';
const [{ address }] = await dns.lookup('example.com', {backend: 'getaddrinfo'});
console.log(address); // "19.42.52.62"