일괄 역방향 DNS 조회에 DIG 사용

일괄 역방향 DNS 조회에 DIG 사용

특정 이름 서버에 대해 일괄 역방향 DNS 쿼리를 수행하고 싶습니다.

현재 여기와 구글에서 검색한 결과입니다. 1개의 항목에 대해 작동하도록 하려면 다음 명령을 사용했습니다.

dig @NAMESERVER -x 10.10.10.10 +short

이것이 바로 내가 원하는 것입니다. 하지만 여러 IP 주소에 대해 이 작업을 수행하면 실패합니다. 내가 한 일은 테스트를 위해 2개의 IP 주소를 나열하는 것이었습니다.

다음 명령을 사용하려고 합니다.

dig @NAMESERVER -x -f dnsquery.txt +short

아무런 결과도 나오지 않습니다. 제가 뭘 잘못하고 있는 걸까요?

입력 파일에는 2개의 라인이 있으며 각 라인에는 1개의 IP 주소가 있습니다.

10.10.10.10
10.10.10.11 

답변1

thrig가 언급했듯이 loop 에서 호출할 수 있습니다 dig.

예를 들어, 이 작은 bash 스크립트를 사용하여 다음이라는 파일에 저장할 수 있습니다 bulkreverse.sh.

#!/bin/bash
filename='ip_in.txt' # name of file with IPs to handle
nameserver='8.8.8.8' # nameserver to query

for ip in `cat $filename`
do
echo 'Handling reverse DNS for $ip'
dig @$nameserver -x $ip +short
done

이 변수는 filenameIP 주소 목록(예: 한 줄에 하나의 IP 주소)이 포함된 파일 이름을 지정합니다. nameserver쿼리할 네임서버입니다.

스크립트를 이라는 파일에 저장한 경우 bulkreverse.sh다음을 실행하여 실행 가능하게 만들어야 합니다.

chmod +x bulkreverse.sh

나중에 실행할 수 있습니다

./bulkreverse.sh

이게 도움이 되길 바란다!

답변2

그 수가 많으면 GNU Parallel이 작업 속도를 높이는 데 도움이 될 수 있습니다.

nameserver=80.80.81.81
parallel -j100 --retries 3 dig @$nameserver -x {} +short :::: ip_in.txt

답변3

awk다음을 사용하여 정방향 주소를 역방향 주소로 변환 할 수 있습니다.dig

awk -F. '{printf "%s.%s.%s.%s.in-addr.arpa\n",$4,$3,$2,$1}' dnsqueries.txt |
    dig +short ptr @NAMESERVER -f -

답변4

원본 코드가 작동하지 않는 이유는 -x파일에서 읽은 모든 데이터 줄에 코드가 포함되어야 하기 때문입니다. 이것은 매뉴얼 페이지에 문서화되어 있지만 개인적으로 더 명확할 수 있다고 생각합니다.

-f file배치 모드: dig지정된 파일에서 처리할 찾기 요청 목록을 읽습니다. 파일의 각 줄은 dig명령줄 인터페이스를 사용하여 쿼리로 표시되는 것과 동일한 방식으로 구성되어야 합니다.

마지막 문장은 통역사이며, 그 줄은 "쿼리로 마이닝되는 것과 동일한 방식으로 구성". 즉, 샘플 파일에는 다음이 포함되어야 합니다.

-x 10.10.10.10
-x 10.10.10.11 

파일이 변경 불가능하다고 가정하면 이를 사용하여 sed필요한 콘텐츠 앞에 추가한 -x다음 결과를 다음으로 파이프할 수 있습니다 dig.

sed 's/^/-x /' dnsquery.txt | dig +short -f -

관련 정보