Latest web development tutorials

DNS 모듈 Node.js를

DNS 모듈 Node.js를

Node.js를 도구 모듈 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"]

Node.js를 도구 모듈 Node.js를 도구 모듈