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

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



답변

nslookup 사용

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


답변

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

$ host 192.168.0.10
server10 has address 192.168.0.10


답변

역방향 조회에 사용할 수있는 다른 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으로 설정합니다.


답변

Windows 핑 -a 10.10.10.10


답변

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

    NBTSTAT -A 10.100.3.104
    

    또는

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

    nmblookup -A 10.100.3.104
    

그들은 거의 동일합니다.


답변

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

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

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


답변

상황에 따라 다릅니다. 운영 체제의 호스트 이름을 참조한다고 생각합니다 ( 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) 로 쿼리 할 수 ​​있습니다 .