쉘 스크립트 역방향 DNS 조회

쉘 스크립트 역방향 DNS 조회

역방향 DNS 조회를 수행하기 위해 쉘 스크립트를 작성하려고 하는데 작동하지 않습니다.

기본적으로 나는 이것을 하고 싶다:

dig -x 8.8.8.8 +short 

출력은 다음과 같습니다: google-public-dns-a.google.com. 출력파일로 보내고 싶습니다.

현재 내 코드는 다음과 같습니다.

#!/bin/bash
#Read a file where per line there will be an IP address. The .in file is the input/sourcelist from which IP addresses are read
cat reverse_dns_lookup.in | while read line
#
do
    # Do a reverse lookup
    dig -x $line +short
done

스크립트를 실행해도 아무 일도 일어나지 않는 것 같아서 호출하는 대신 dig먼저 다음과 같이 스크립트를 테스트하는 것이 좋습니다.

echo dig -x $line +short

이것조차도 출력이 생성되지 않습니다. 내가 여기서 무엇을 놓치고 있는 걸까요?

답변1

reverse_dns_lookup.in포함된 것으로 추정

-x 8.8.8.8
-x 127.0.0.1

그 다음에:

$ dig -f reverse_dns_lookup.in +short
google-public-dns-a.google.com.
localhost.

-x기존 파일의 내용에 추가 하고 dig파일을 수정하지 않고 호출하려면 프로세스 대체를 사용하십시오.

$ dig -f <( sed 's/^/-x /' reverse_dns_lookup.in ) +short

이렇게 하면 루프 dig에서 여러 호출을 방지하고 reverse_dns_lookup.in.read

그런 다음 출력을 원하는 파일로 리디렉션합니다.

$ dig -f <( sed 's/^/-x /' reverse_dns_lookup.in ) +short >dig-results.txt

성공적인 쿼리 결과와 IP 주소를 연결하려면 다음을 수행하세요.

$ dig -f <( sed 's/^/-x /' reverse_dns_lookup.in ) +noall +answer | awk '{ print $1, $NF }' >dig-results.txt

내가 사용한 예제 파일의 경우 다음과 같습니다.

8.8.8.8.in-addr.arpa. google-public-dns-a.google.com.
1.0.0.127.in-addr.arpa. localhost.

존재하다 dig-results.txt.

답변2

#!/bin/bash

while read line
do
        echo $line - `dig -x "$line" +short`
done < reverse_dns_lookup.in

이 코드는 나에게 잘 작동합니다. 파일이 reverse_dns_lookup.in올바른 위치에 있는지 확인해야 합니다.

스크립트의 출력을 파일로 보내려면 bash에서 표준 stdin 리디렉션 연산자를 사용하여 리디렉션하면 됩니다. ./script.sh > output_file.txt

또한 변경에 대한 귀하의 우려에 대한 답변으로 IP가 revdns 항목과 함께 표시되었습니다.

관련 정보