호스트에 로그인하지 않고 IP에서 호스트 이름을 찾는 방법


128

해당 UNIX 호스트에 로그인하지 않고 IP를 알고있는 UNIX 호스트의 호스트 이름을 찾아야합니다.


19
NBTSTAT -A 10.10.10.10 Windows 용
Kanagavelu Sugumar

2
답을 받아 본 적이 있습니까?
Paolo Stefan

2
@PaoloStefan 사용자가 2009 년에 마지막으로 본 적이있는 경우 이는 매우 불가능한 이벤트입니다.
Boris Treukhov

답변:


163

nslookup 사용

nslookup 208.77.188.166 
...
Non-authoritative answer:
166.188.77.208.in-addr.arpa     name = www.example.com.

2
centos 설치에서는 sudo yum install bind-utils먼저 실행해야합니다 . 이것은 당신을 위해 nslookup 조회를 설치합니다
lfender6445

nslookup은 더 이상 사용되지 않습니다. 대신 'dig'또는 'host'를 사용할 수 있습니다
P. Barbadew

74

로 역방향 DNS 조회를 수행 할 수도 host있습니다. IP 주소를 인수로 지정하십시오.

$ host 192.168.0.10
server10 has address 192.168.0.10

43

역방향 조회에 사용할 수있는 다른 NS 조회 유틸리티는 dig다음 -x옵션을 사용합니다.

$ dig -x 72.51.34.34

; <<>> DiG 9.9.2-P1 <<>> -x 72.51.34.34
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12770
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1460
;; QUESTION SECTION:
;34.34.51.72.in-addr.arpa.      IN      PTR

;; ANSWER SECTION:
34.34.51.72.in-addr.arpa. 42652 IN      PTR     sb.lwn.net.

;; Query time: 4 msec
;; SERVER: 192.168.178.1#53(192.168.178.1)
;; WHEN: Fri Jan 25 21:23:40 2013
;; MSG SIZE  rcvd: 77

또는

$ dig -x 127.0.0.1

; <<>> DiG 9.9.2-P1 <<>> -x 127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11689
;; flags: qr aa ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;1.0.0.127.in-addr.arpa.                IN      PTR

;; ANSWER SECTION:
1.0.0.127.in-addr.arpa. 10      IN      PTR     localhost.

;; Query time: 2 msec
;; SERVER: 192.168.178.1#53(192.168.178.1)
;; WHEN: Fri Jan 25 21:23:49 2013
;; MSG SIZE  rcvd: 63

발굴 맨 페이지 에서 인용 :

주소를 이름에 매핑하는 역방향 조회는 -x 옵션으로 단순화됩니다 . addr은 점으로 구분 된 10 진수 표기법의 콜론으로 구분 된 IPv6 주소 또는 IPv4 주소입니다. 이 옵션을 사용하면 이름, 클래스 및 유형 인수를 제공 할 필요가 없습니다. dig는 11.12.13.10.in-addr.arpa와 같은 이름을 자동으로 조회하고 쿼리 유형과 클래스를 각각 PTR과 IN으로 설정합니다.



17
  • Windows의 경우 다음을 시도하십시오.

    NBTSTAT -A 10.100.3.104
    

    또는

    ping -a 10.100.3.104
    
  • Linux의 경우 다음을 시도하십시오.

    nmblookup -A 10.100.3.104
    

그들은 거의 동일합니다.


2
nmblookup은 훌륭하게 작동했지만 웹 서버의 호스트 이름을 찾으려고하지 않았지만 수행하지 않는 컴퓨터는 수행하지 않아야했습니다. 이것은 Windows 호스트 이름뿐만 아니라 Mac 주소를 노출 시켰습니다.
FreeSoftwareServers

9
python -c "import socket;print(socket.gethostbyaddr('127.0.0.1'))"

추가 정보없이 이름 만 필요하면 끝에 [0]을 추가하십시오.

python -c "import socket;print(socket.gethostbyaddr('8.8.8.8'))[0]"

잘못된 구문 강조 소켓입니다.
Sandeep Roy

1
python3의 경우 괄호가있는 함수로 인쇄를 변경하십시오.python -c "import socket;print(socket.gethostbyaddr('10.16.7.10'))"
Corey Goldberg

7

상황에 따라 다릅니다. 운영 체제의 호스트 이름을 참조한다고 생각합니다 ( hostname로그인 할 때 반환 됨 ). 이 명령은 내부 이름 전용입니다 이므로 시스템 이름을 쿼리하려면 다른 이름 지정 시스템이 필요합니다. DNS, DHCP, LDAP (DN) 등을 포함하여 호스트를 식별하기 위해 이름을 사용하는 여러 시스템이 hostname있으며 많은 시스템은 zeroconf 를 사용 하여 여러 이름 지정 시스템간에 이름을 동기화합니다. 이러한 이유로 인해 결과 hostname가 때때로 dig(아래 참조) 또는 다른 명명 시스템의 결과와 일치 하지만 종종 일치하지 않는 경우가 있습니다.

DNS 가 가장 일반적이며 인터넷 (예 google.com. A 216.58.218.142:)과 집 (mDNS / LLMNR) 모두에서 사용되므로 역방향 DNS 조회 를 수행하는 방법은 다음과 같습니다. 과 같습니다 . dig -x <address>( 더 간단하고 세부 정보를 제공하지 않으며 다르게 반환 될 수도 있음) 그러나 Windows에는 포함되지 않습니다).nslookuphostdig

CDN 내의 호스트 이름 은 정식 도메인 이름 (예 : "google.com")으로 해석되지 않지만 쿼리 한 호스트 IP의 호스트 이름 (예 : "dfw25s08-in-f142.1e100.net"; 재미있는 tidbit : 1e100은 1 googol입니다).

또한 DNS 호스트는 둘 이상의 이름을 가질 수 있습니다. 이는 가상화 기술의 확산으로 인해 웹 서버 (가상 호스팅)가 둘 이상있는 호스트에서 일반적입니다. 이 호스트에는 여러 개의 PTR DNS 레코드가 있습니다.

마지막으로, 로컬 호스트는 / etc / hosts 를 통해 DNS 호스트 레코드를 무시할 수 있습니다 . 예상 한 호스트 이름이 없으면이 파일을 확인하십시오.

프로토콜은 쿼리 방법을 정의하지 않기 때문에 DHCP 호스트 이름은 사용되는 DHCP 서버 소프트웨어에 따라 다르게 쿼리됩니다. 그러나 대부분의 서버는이를 수행하는 방법을 제공합니다 (일반적으로 권한있는 계정으로).

참고 DHCP 이름은 일반적으로 DNS 서버와 동기화되므로 DHCP 클라이언트 최소 표와 DNS 서버의 A (또는 IPv6의 경우 AAAA) 레코드에서 동일한 호스트 이름을 보는 것이 일반적입니다. 다시 말하지만, 이것은 일반적으로 zeroconf의 일부로 수행됩니다.

또한 클라이언트에 대한 DHCP 임대가 존재한다고해서 여전히 사용중인 것은 아닙니다.

TCP / IP 용 NetBIOS (NBT) 는 수십 년 동안 이름 확인을 수행했지만 이름 확인 (Windows에서는 zeroconf의 일부)을 위해 LLMNR로 대체되었습니다 . 이 레거시 시스템은 여전히 nbtstat(Windows) 또는 nmblookup(Linux) 로 쿼리 할 수 ​​있습니다 .


@John Syrinek DHCP 호스트 이름 쿼리에 대해 자세히 설명해 주시겠습니까? IP로 다른 컴퓨터 (동일한 WLAN에서)의 호스트 이름을 쿼리하고 싶습니다. 가능합니까?
jfly

2

다른 대답은 정확합니다. 역방향 DNS 조회를 사용하십시오. 스크립팅 언어 (Python, Perl)를 통해이를 수행하려면 gethostbyaddr API를 사용할 수 있습니다.


0

구체적으로 Windows 컴퓨터를 찾고 있다면 아래 명령을 시도하십시오.

nbtstat -a 10.228.42.57


-1

대부분의 경우 traceroute 명령이 제대로 작동합니다. nslookup 및 호스트 명령이 실패 할 수 있습니다.


4
이것은 잘못된 것입니다. IP가 주어지면 할 일은 DNS에 대한 역방향 쿼리입니다. 따라서 traceroute는 제안하는 올바른 도구가 아닙니다.
Ottavio Campana
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.