3.5.4 dns
DNS를 다룰 때 사용하는 모듈입니다. 주로 도메인을 통해 IP나 기타 DNS 정보를 얻고자 할 때 사용합니다.
dns.mjs
import dns from 'dns/promises';
const ip = await dns.lookup('gilbut.co.kr');
console.log('IP', ip);
const a = await dns.resolve('gilbut.co.kr', 'A');
console.log('A', a);
const mx = await dns.resolve('gilbut.co.kr', 'MX');
console.log('MX', mx);
const cname = await dns.resolve('www.gilbut.co.kr', 'CNAME');
console.log('CNAME', cname);
const any = await dns.resolve('gilbut.co.kr', 'ANY');
console.log('ANY', any);
콘솔
$ node dns.mjs
IP { address: ' 49 . 236 . 151 . 220 ', family: 4 }
A [ ' 49 . 236 . 151 . 220 ' ]
MX [
{ exchange: 'alt 2 .aspmx.l.google.com', priority: 5 },
{ exchange: 'aspmx 3 .googlemail.com', priority: 10 },
{ exchange: 'aspmx 2 .googlemail.com', priority: 10 },
{ exchange: 'aspmx.l.google.com', priority: 1 },
{ exchange: 'alt 1 .aspmx.l.google.com', priority: 5 }
]
CNAME [ 'slb- 1088813 .ncloudslb.com' ]
ANY [
{ address: ' 49 . 236 . 151 . 220 ', ttl: 14235, type: 'A' },
{ value: 'ns 1 - 2 .ns-ncloud.com', type: 'NS' },
{ value: 'ns 1 - 1 .ns-ncloud.com', type: 'NS' },
{
nsname: 'ns 1 - 1 .ns-ncloud.com',
hostmaster: 'ns 1 - 2 .ns-ncloud.com',
serial: 32,
refresh: 21600,
retry: 1800,
expire: 1209600,
minttl: 300,
type: 'SOA'
}
]
ip 주소는 간단하게 dns.lookup이나 dns.resolve(도메인)으로 얻을 수 있습니다. A(ipv4 주소), AAAA(ipv6 주소), NS(네임서버), SOA(도메인 정보), CNAME(별칭, 주로 www가 붙은 주소는 별칭인 경우가 많습니다), MX(메일 서버) 등은 레코드라고 부르는데, 해당 레코드에 대한 정보는 dns.resolve(도메인, 레코드 이름)으로 조회하면 됩니다.