호스트 이름을 얻고 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
nslookup
dig
ISC 명령을 선호하는 다소 사용되지 않는 명령입니다 .
를 사용하려면 dig
다음과 같이 작성할 수 있습니다.
dig -x 127.0.0.1 +short
또는 다음을 수행할 수 있습니다.
perl -MSocket -le 'print((gethostbyaddr(inet_aton("127.0.0.1"), AF_INET))[0])'
정보를 얻기 위해 시스템의 확인자를 사용합니다( DNS뿐만 아니라 /etc/hosts
DNS, NIS+, LDAP...를 사용할 수도 있음)./etc/nsswitch.conf
dig
nslookup
답변2
다음과 유사한 출력을 제공하는 호스트 명령을 사용해 볼 수 있습니다.
$ host 127.0.0.1
1.0.0.127.in-addr.arpa domain name pointer localhost.