쉘 스크립트에서 IP에 대한 DNS 조회를 안전하게 되돌리는 방법

쉘 스크립트에서 IP에 대한 DNS 조회를 안전하게 되돌리는 방법

호스트 이름을 얻고 IP 주소를 팝업하는 방법(역방향 DNS 조회)을 알아내려고 노력 중입니다.

나는 이것을 생각해 냈지만 다른 Linux 배포판에서 안전한지 확실하지 않습니다.

nslookup $ip|grep "name ="|sed 's/^.*name = //'| sed '$s/\.$//'

괜찮은 것 같습니다. nslookup을 호출하면 다음이 제공됩니다.

$ nslookup 127.0.0.1
Server:     192.154.28.100
Address:    192.154.28.100#53

1.0.0.127.in-addr.arpa  name = localhost.

따라서 호스트 이름이 제공되지 않은 줄을 제거하기 위해 grep을 수행합니다. 그런 다음 "name=" 앞의 모든 항목을 제거하고 마지막에 를 삭제하는 데 사용합니다. 어떤 이유로 행이 두 개 이상인 경우 첫 번째 행만 사용합니다. 이렇게 하면 'localhost'가 제공됩니다. 이를 수행하는 더 좋은 방법이 있어야 합니까?

답변1

nslookupdigISC 명령을 선호하는 다소 사용되지 않는 명령입니다 .

를 사용하려면 dig다음과 같이 작성할 수 있습니다.

dig -x 127.0.0.1 +short

또는 다음을 수행할 수 있습니다.

perl -MSocket -le 'print((gethostbyaddr(inet_aton("127.0.0.1"), AF_INET))[0])'

정보를 얻기 위해 시스템의 확인자를 사용합니다( DNS뿐만 아니라 /etc/hostsDNS, NIS+, LDAP...를 사용할 수도 있음)./etc/nsswitch.confdignslookup

답변2

다음과 유사한 출력을 제공하는 호스트 명령을 사용해 볼 수 있습니다.

$ host 127.0.0.1
1.0.0.127.in-addr.arpa domain name pointer localhost.

관련 정보