DNS 모듈 Node.js를
DNS 모듈 Node.js를
DNS 모듈Node.js를 도메인 이름을 확인하는 데 사용됩니다.다음과 같이 DNS 모듈 구문의 도입은 다음과 같습니다
var dns = require("dns")
방법
아니오. | 방법 및 설명 |
---|---|
(1) | dns.lookup (호스트 이름 [옵션], 콜백) 해결 된 도메인 이름 (예 : 'w3big.com')는 첫 번째 레코드 A (IPV4) 또는 AAAA (IPV6)을 찾을 수 있습니다. 파라미터 옵션 개체 또는 정수일 수있다. 옵션없이하는 경우, IP V4와 V6 주소가 될 수 있습니다. 옵션이 정수인 경우, 4 또는 6이어야한다. |
이 | dns.lookupService (주소, 포트, 콜백) 도메인 이름과 서비스의 수신 주소와 포트를 파싱 getnameinfo에서 사용한다. |
3 | dns.resolve (호스트 이름 [, rrtype, 콜백) 배열 rrtype로 확인 (예 : 'w3big.com'등) 도메인 이름은 레코드 유형을 지정했습니다. |
4 | dns.resolve4 (호스트 이름, 콜백) 그리고 dns.resolve는 ()와 유사하다 만 쿼리의 IPv4 (A 레코드). 어레이의 IPv4 주소 주소 (예컨대, ['74 .125.79.104 ', '74 .125.79.105', '74 .125.79.106를 '). |
(5) | dns.resolve6 (호스트 이름, 콜백) 그리고 dns.resolve4는 ()와 유사한 만 쿼리의 IPv6 (AAAA 쿼리)입니다 |
6 | dns.resolveMx (호스트 이름, 콜백) 그리고 dns.resolve는 ()와 유사한 만 쿼리 메일 교환 (MX 레코드)입니다. |
(7) | dns.resolveTxt (호스트 이름, 콜백) 그리고 dns.resolve는 ()는 텍스트 쿼리 (TXT 레코드)에 대해 유사하다. 텍스트 레코드의 2 차원 배열을 다룬다. (예를 들어, [[ 'V = spf1의 IP4 : 0.0.0.0', '~ 모든']]). 각 서브 어레이 블록은 TXT 레코드를 포함합니다. 함께 결합 될 수있는 상황에 따라, 또한 개별적으로 사용될 수있다. |
8 | dns.resolveSrv (호스트 이름, 콜백) 그리고 dns.resolve는 ()와 유사하다 만 서비스 레코드 쿼리 (SRV 레코드). 주소의 호스트 이름을 사용할 수 SRV 레코드 배열입니다. '무게', 10 : 5, '포트'SRV 레코드 우선 순위 (우선 순위), 중량 (무게), 포트 (포트) 및 이름 (이름) (예를 들어, [{ '우선 순위'속성 21223, '이름 ''service.example.com '}, ...]). |
9 | dns.resolveSoa (호스트 이름, 콜백) 그리고 dns.resolve는 ()와 유사한 만 쿼리 기관 레코드 (SOA 레코드)입니다. |
(10) | dns.resolveNs (호스트 이름, 콜백) 그리고 dns.resolve ()은 단지 도메인 이름 서버 레코드 (NS 레코드) 쿼리 유사하다. (호스트가 사용될 수있다) 레코드의 배열 도메인 이름 서버 인 주소 (예컨대, [ 'ns1.example.com', 'ns2.example.com'). |
(11) | dns.resolveCname (호스트 이름, 콜백) 그리고 dns.resolve ()는 유사한 레코드 만이 수행 체크 별칭 (CNAME 레코드)입니다. 주소를 사용할 수 기록 호스트 이름 별명의 배열입니다 (예를 들어, [ 'bar.example.com']). |
(12) | dns.reverse (IP, 콜백) 역방향 해결 IP 주소, 도메인 이름 어레이의 IP 주소를 가리. |
(13) | dns.getServers () 현재 해결에게 어레이의 IP 주소를 나타내는 캐릭터 라인을 돌려줍니다. |
(14) | dns.setServers (서버) 그것은 해상도 서버와 IP 주소의 집합을 지정합니다. |
rrtypes
목록 dns.resolve () 메소드 유효한 rrtypes 값은 다음과 같습니다
-
'A'
IPv4 주소, 기본 -
'AAAA'
IPV6 주소 -
'MX'
메일 교환 레코드 -
'TXT'
텍스트 기록 -
'SRV'
SRV 레코드 -
'PTR'
역 IP 조회를위한 -
'NS'
도메인 이름 서버 레코드 -
'CNAME'
별명 기록 -
'SOA'
권한 레코드의 초기치
오류 코드
각 DNS 쿼리는 다음과 같은 오류 코드를 반환 할 수 있습니다 :
-
dns.NODATA
: 자료 없음 응답. -
dns.FORMERR
: 쿼리 잘못된. -
dns.SERVFAIL
: 일반 실패. -
dns.NOTFOUND
: 도메인을 찾을 수 없습니다. -
dns.NOTIMP
: 요청한 작업은 구현되지 않습니다. -
dns.REFUSED
: 쿼리를 거부했다. -
dns.BADQUERY
: 잘못된 쿼리. -
dns.BADNAME
: 도메인 이름이 잘못되었습니다. -
dns.BADFAMILY
: 주소 프로토콜은 지원하지 않습니다. -
dns.BADRESP
: 잘못된 대답. -
dns.CONNREFUSED
: DNS 서버에 연결할 수 없습니다. -
dns.TIMEOUT
: DNS 서버 연결 시간 초과. -
dns.EOF
: 파일의 끝. -
dns.FILE
: 오류 파일을 읽는. -
dns.NOMEM
: 메모리 오버 플로우. -
dns.DESTRUCTION
: 채널이 삭제됩니다. -
dns.BADSTR
: 포맷 스트링 오류가 발생했습니다. -
dns.BADFLAGS
: 잘못된 식별자입니다. -
dns.NONAME
: 호스트 주어진 숫자가 아닙니다. -
dns.BADHINTS
: 불법 힌트 식별자. -
dns.NOTINITIALIZED
: C C-아레스 라이브러리가 초기화되지 않았습니다. -
dns.LOADIPHLPAPI
: 오류 로딩 iphlpapi.dll. -
dns.ADDRGETNETWORKPARAMS
: GetNetworkParams 기능을 찾을 수 없습니다. -
dns.CANCELLED
: DNS 쿼리를 취소합니다.
예
main.js 파일을 만들고 다음과 같이 코드 :
var dns = require('dns'); dns.lookup('www.github.com', function onLookup(err, address, family) { console.log('ip 地址:', address); dns.reverse(address, function (err, hostnames) { if (err) { console.log(err.stack); } console.log('反向解析 ' + address + ': ' + JSON.stringify(hostnames)); }); });
상기 코드는 다음과 같은 결과가 실행된다 :
address: 192.30.252.130 reverse for 192.30.252.130: ["github.com"]