매뉴얼 페이지를 자세히 살펴보니 대답은 "아니오"라고 확신합니다. 하지만 호스트 레코드가 dig
구문 분석되는 것을 방지할 수 있는 방법이 있습니까 CNAME
?
예를 들어:
$ dig +short mail.yahoo.com A
edge.gycpi.b.yahoodns.net.
66.218.84.40
66.218.84.44
66.218.84.41
66.218.84.45
66.218.84.42
66.218.84.43
이 호스트에 대한 기록 이 없어서 A
답변을 받을 수 없습니다. 그런 점에서 A
다른 기록형과는 다르게 처리되는 것 같습니다.AAAA
나는 성공하지 못한 채 +norecurse
및 +noadditional
옵션을 시도했습니다. 첫 번째 줄이 FQDN인 여러 줄이 있는지 확인하기 위해 스크립트의 응답을 쉽게 구문 분석할 수 있지만 이렇게 하면 안 될 것 같은 느낌이 듭니다.
답변1
~에 따르면RFC 1034레코드 유형 을 요청할 수 CNAME
있으며, 존재하는 경우 해당 레코드 유형을 받게 됩니다.
dig -t cname +short www.bbc.co.uk
www.bbc.co.uk.pri.bbc.co.uk.
A
그러나 기록을 요청 하지만 다음을 통해 조회를 허용하지 않는 방법은 없는 것 같습니다 CNAME
.
dig -t cname +short uk.www.bbc.co.uk.pri.bbc.co.uk # No output
물론,RFC 1034 섹션 3.6.2썼다,
이름 서버가 도메인 이름과 연결된 리소스 세트에서 필요한 RR을 찾는 데 실패하면 리소스 세트에
CNAME
일치하는 클래스의 레코드가 포함되어 있는지 확인합니다. 그렇다면 이름 서버는CNAME
응답에 레코드를 포함하고 레코드의 데이터 필드에 지정된 도메인 이름에서 쿼리를 다시 시작합니다CNAME
. 이 규칙의 한 가지 예외는CNAME
이 유형과 일치하는 쿼리가 다시 시작되지 않는다는 것입니다.
RFC 용어에 따르면 "~해야 한다“이 설명에는 명확한 조치가 나와 있습니다.
원하는 동작을 얻으려면 dig
다음과 같은 일부 사용자 정의 코드를 래핑해야 할 수도 있습니다.
query=www.bbc.co.uk
result=$(dig -t cname +short "$query" | xargs)
[ -z "$result" ] && result=$(dig -t a +short "$query" | xargs)
printf "Result: %s\n" "$result"