역방향 DNS 명령 줄 유틸리티 란 무엇입니까?


답변:


56

발굴호스트 는 당신이 찾고있는 것이어야합니다.)

http://www.unix.com/unix-dummies-questions-answers/9866-nslookup-linux.html

* nix 시스템에서 다음 명령을 수행 할 수 있습니다. dig -x [address]

또는 명령 +short끝에 digdns 결과 만 출력하도록 추가 할 수 있습니다 .

Windows 에서는nslookup

편집 : nslookup은 * nix 시스템에서도 작동합니다. nslookup 명령에 대한 자세한 정보는 지금부터 교체 된 것 같습니다 : http://linuxreviews.org/man/nslookup/


동일한 구문 drill은 ldns 의 유틸리티 와도 작동합니다.drill -x 123.123.123.123
Tullo_x86

52

* nix에서는 다음을 사용할 수 있습니다.

dig -x [address]

16
이것은 가장 쉬운 방법 인 것 같습니다. 끝에 rdns 결과 만 반환하려면 + short를 추가하십시오. dig -x [address] +short
ColinM

3
+short깃발은 정말 유용합니다!
Neil

IPv6 주소에서도 작동합니까?
Geremia

@ColinM 좋은 지적입니다. 이것을 바탕으로 답변을 편집했습니다. 감사!
Marc-Andre R.

예, @Geremia에 따르면 man dig, addr은 점 분리 십진수 표기법의 IPv4 주소 또는 콜론으로 구분 된 IPv6 주소입니다.
Ricardo

8

내가 아는 대부분의 Linux 시스템에서 다음을 사용할 수 있습니다.

 nslookup <ip-number EX: 127.0.0.1>

명령 행에서 작동합니다.

Windows XP에서는 nslookup을 사용할 수 없습니까?


네 확실합니다. 그리고 이전 버전의 Windows에서.
kubanczyk

4

이 질문에는 이미 백만 개의 답변이 있지만 다른 질문을 추가하겠습니다. 다음은 dig를 사용하여 역방향 DNS를 쉽게 수행하기 위해 작성한 작은 기능입니다. 이것을 ~/.bashrc파일에 추가하고 셸을 다시로드 한 다음 다음을 사용하여 DNS 조회를 역방향으로 수행 할 수 있습니다 revdns 1.2.3.4.

function revdns() {
    octets=""
    addr="in-addr.arpa"

    # split the IP address into an array of octets
    IFS="." read -r -a octets <<< "$1"

    # add each octet to our $addr string in reverse order
    for octet in "${octets[@]}"; do
         addr=$octet"."$addr
    done

    # run a DNS pointer lookup with dig
    # `+short` makes dig's output very terse (un-verbose)
    # `"${@:2}"` passes any extra params from this command to dig
    dig ptr +short $addr "${@:2}"
}

포인터 (PTR) 레코드를 확인하여 역방향 DNS 조회를 수행합니다. "1.2.3.4"에 대해 DNS를 역으로 수행하려면 "4.3.2.1.in-addr.arpa"에 대한 포인터 레코드를 찾아야합니다. 내 함수는 IP 주소를 사용하고 옥텟의 순서를 반대로 한 다음 (즉, 1.2.3.4에서 4.3.2.1로 변경) dig방금 설명한 PTR 조회를 실행하는 데 사용 합니다.

물론 nslookup 1.2.3.4가지고 있다면 사용할 수 있지만 nslookup 제공 서버 대신 OS의 DNS 서버를 사용하기 때문에이 발굴 기반 솔루션을 선호합니다 (원하는 경우 추가 발굴 플래그를 추가 할 수 있음) 당신이 전화 revdns하면 발굴 될 것입니다)


그것의 도움에 따르면 dig -x dot-notation"역방향 조회를위한 지름길"이있다. 긴 버전이 무엇인지 궁금합니다. 설명해 주셔서 감사합니다! :)
webwurst

from man dig: -x를 사용하는 경우 이름, 클래스 및 유형 인수를 제공 할 필요가 없습니다. dig는 94.2.0.192.in-addr.arpa와 같은 이름을 자동으로 조회하고 쿼리 유형과 클래스를 각각 PTR과 IN으로 설정합니다.
Ricardo

3

나는 dig / host / nslookup이 이들을위한 표준 도구라는 것을 잘 알고 있지만 OS의 해상도를 테스트하기 위해 이것을 유지합니다 (기본적으로 nsswitch.conf를 올바르게 테스트하기 위해).

gethostbyname :

#!/usr/bin/perl

use Socket;

my @t = gethostbyname($ARGV[0]);
print "\$name     = $t[0]\n"; shift(@t);
print "\$aliases  = $t[0]\n"; shift(@t);
print "\$addrtype = $t[0]\n"; shift(@t);
print "\$length   = $t[0]\n"; shift(@t);

foreach (@t) {
  print "          = ", inet_ntoa($_), "\n";
}

gethostbyaddr :

#!/usr/bin/perl

use Socket;

my @t = gethostbyaddr(inet_aton($ARGV[0]), AF_INET);
print "\$name     = $t[0]\n"; shift(@t);
print "\$aliases  = $t[0]\n"; shift(@t);
print "\$addrtype = $t[0]\n"; shift(@t);
print "\$length   = $t[0]\n"; shift(@t);

foreach (@t) {
  print "          = ", inet_ntoa($_), "\n";
}

예:

g3 0 /home/jj33/swap > gethostbyname www.google.com
$name     = www.l.google.com
$aliases  = www.google.com
$addrtype = 2
$length   = 4
          = 72.14.205.147
          = 72.14.205.103
          = 72.14.205.104
          = 72.14.205.99
g3 0 /home/jj33/swap > gethostbyaddr 72.14.205.147 
$name     = qb-in-f147.google.com
$aliases  = 
$addrtype = 2
$length   = 4
          = 72.14.205.147

4
당신은 "getent 호스트 [IP 또는 호스트 이름을]"할 수
hayalci

흠 ... 나는 원래 기능을 가지고 놀기 위해 도구를 썼습니다. 그래서 손실이 없지만 getent 도구에 대해 알고 있었다면 확실히 serverfault에 붙여 넣지 않았을 것입니다. 포인터 주셔서 감사합니다.
jj33

-1 : IPv4로 제한되며 gethostbyname은 IPv6 주소가있을 때이를 검색하지 않으며 gethostbyaddr은 IPv6 주소를 허용하지 않습니다.
bortzmeyer

이 기능은 수년 동안 사용되지 않습니다. 이것들이 쓰여질 때 그들은 심지어 쓸모 없었다. 펄 및 대부분의 다른 언어에서는 getaddrinfo 및 getnameinfo를 사용해야합니다.
Michael Hampton

3

Windows에서는 다음을 사용하는 습관이 생겼습니다.

ping -a <ip address>

hosts파일 및 WINS 등의 데이터도 반영합니다 .


2

"호스트"를보십시오

  • 다음을 통한 정방향 조회 host:

    $ host google-public-dns-b.google.com.
    google-public-dns-b.google.com has address 8.8.4.4
    google-public-dns-b.google.com has IPv6 address 2001:4860:4860::8844
    
  • 로 역방향 조회 host:

    $ host 8.8.4.4
    4.4.8.8.in-addr.arpa domain name pointer google-public-dns-b.google.com.
    

파기와 비슷한

  • 다음을 통한 정방향 조회 dig:

    $ dig google-public-dns-b.google.com. +short
    8.8.4.4
    
  • 로 역방향 조회 dig:

    $ dig -x 8.8.4.4 +short
    google-public-dns-b.google.com.
    

1

nslookup을 사용하는 경우 이것입니다 (문제의 IP로 192.168.0.1로 가정)

> set type=ptr
> 1.0.168.192.in-addr.arpa

편집 : 역방향 조회는 IP에 대해 생성 된 PTR 레코드가 있고 원하는 호스트 이름을 반환한다고 보장하지 않는 경우에만 작동합니다. 상황에 따라 DNS를 구성하고 유지 관리하는 방법에 전적으로 달려 있습니다.


5
nsloookup은 더 이상 유지 관리되지 않으며 작성자는 발굴을 권장합니다. 게다가 dig -x는 바이트를 뒤집는 것보다 훨씬 간단합니다.
bortzmeyer

입력 해 주셔서 감사합니다. 오래 된 습관은 열심히 죽는다;)
squillman

1

파워 쉘 :

[net.dns]::gethostentry("69.59.196.212").HostName

0

글쎄, 어떤 우호적 인 사람은 방금 nslookup이 명령이라고 썼으며 그는 맞습니다. Unix와 Windows 모두에서 작동합니다. 왜 답을 삭제했는지는 확실하지 않지만 정답입니다.


어쩌면 아닐 수도 있습니다.
피터 터너

글쎄, 나는 조금 빨리 게시했다. 그리고 확인 후 나는 모든 대답을 확신하지 못했다. 나는 단지 내 게시물을 다시 넣고 세부 사항을 추가하기 위해 그것을 편집한다;)
Marc-Andre R.

좋습니다.하지만 그 대답을 받아들이지는 않습니다. 실시간 Googley AJAX를 얻을 수 없습니다.
피터 터너

롤 그래, 잘, 우리는 모든 것을 가질 수 없습니다;) 좋은 하루 되세요, 내가 당신을 도울 수 있기를 바랍니다;)
Marc-Andre R.

0

Windows 용 명령 줄 dig ( http://members.shaw.ca/nicholas.fong/dig/ )을 nslookup으로 선호합니다 .

Windows 워크 스테이션에서 DNS를 테스트 / 관리해야하는 경우이 도구를 사용하십시오. 그때:

C:\dig>dig -x <IP Address>

또한 경로에 c : \ dig를 추가해야합니다!


0

그녀는 좀 더 완전한 DNS 역방향 조회를 수행합니다. 이 페이지의 향후 시청자에게 도움이 되길 바랍니다.

for ip in {1..254..1}; do dig -x 1.1.1.$ip | grep $ip >> dns.txt; done;

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.