DNS 쿼리 스크립트

DNS 쿼리 스크립트

일부 도메인에 대한 모든 A 레코드를 얻으려고 합니다. 내가 찾은 가장 좋은 방법은 다음을 사용하는 것입니다.https://www.whatsmydns.net그리고 다음 도구. 문제는 복사하여 붙여넣고 모든 정크 항목을 정렬하는 것이 매우 느리다는 것입니다. 스크래핑을 시도했지만 자바 스크립트는 절반의 시간이 중단됨을 의미합니다.

또 다른 아이디어는 내 서버에서 DNS 쿼리를 실행하는 것이지만 대부분의 DNS 서버가 애니캐스트이기 때문에 이것이 얼마나 효과적인지 잘 모르겠습니다.

"nslookup google.com 8.8.8.8"을 수행하고 DNS 서버 목록을 반복한 다음 A 레코드의 IP 주소만 google.com.txt라는 파일로 출력하는 스크립트를 작성할 수 있습니까? 모든 중복 항목을 삭제하세요.

미리 감사드립니다!

답변1

dig(1)or 명령은 host(1)자동으로 레코드를 찾을 수 있습니다 A.

% for d in example.com example.org; do dig +short A $d; done 
93.184.216.34
93.184.216.34
% for d in example.com example.org; do host -t A $d; done                   
example.com has address 93.184.216.34
example.org has address 93.184.216.34
%

스크립트로서 한 가지 방법은 다음과 같습니다.

$ cat domlu
#!/bin/sh
# accepts list of domains one per line on standard input, emits unique
# A records for said domains (assuming no errors, etc).
( while read domain; do
  dig +short A "$domain"
done ) | sort -u
$ cat hl
example.com
example.org
$ chmod +x domlu 
$ ./domlu < hl
93.184.216.34
$ 

관련 정보