как узнать имя хоста по IP без логина на хост - PullRequest
121 голосов
/ 18 марта 2009

Мне нужно найти имя хоста хоста UNIX, IP-адрес которого известен без входа в систему на этом хосте UNIX

Ответы [ 11 ]

160 голосов
/ 18 марта 2009

Использование nslookup

nslookup 208.77.188.166 
...
Non-authoritative answer:
166.188.77.208.in-addr.arpa     name = www.example.com.
65 голосов
/ 18 марта 2009

Вы также можете выполнить обратный поиск DNS с помощью host. Просто укажите в качестве аргумента IP-адрес:

$ host 192.168.0.10
server10 has address 192.168.0.10
40 голосов
/ 26 января 2013

Еще одна утилита поиска 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

Цитата из справочной страницы dig :

Обратный поиск - сопоставление адресов с именами - упрощается -x опция. addr - это IPv4-адрес в десятичной записи с разделительными точками или IPv6-адрес, разделенный двоеточиями. Когда эта опция используется, нет необходимо указать имя, класс и аргументы типа. копать автоматически выполняет поиск имени типа 11.12.13.10.in-addr.arpa и устанавливает тип запроса и класс для PTR и IN соответственно.

26 голосов
/ 13 февраля 2014

Для Windows ping -a 10.10.10.10

13 голосов
/ 21 ноября 2014
  • Для Windows попробуйте:

    NBTSTAT -A 10.100.3.104
    

    или

    ping -a 10.100.3.104
    
  • Для Linux попробуйте:

    nmblookup -A 10.100.3.104
    

Они почти одинаковы.

7 голосов
/ 19 января 2016

Это зависит от контекста. Я думаю, что вы ссылаетесь на имя хоста операционной системы (возвращается hostname, когда вы вошли в систему). Эта команда предназначена только для внутренних имен , поэтому для запроса имени машины требуются разные системы имен. Существует несколько систем, которые используют имена для идентификации хостов, включая DNS, DHCP, LDAP (DN), hostname и т. Д., И многие системы используют zeroconf для синхронизации имен между несколькими системами имен. По этой причине результаты hostname иногда будут совпадать с результатами dig (см. Ниже) или других систем именования, но часто они не будут совпадать.

DNS является наиболее распространенным и используется как в Интернете (например, google.com. A 216.58.218.142), так и дома (mDNS / LLMNR), поэтому вот как выполнить обратный поиск DNS : dig -x <address> (nslookup и host проще, предоставляют меньше деталей и могут даже давать разные результаты; однако dig не включен в Windows).

Обратите внимание, что имена хостов в CDN не будут преобразовываться в каноническое доменное имя (например, "google.com"), а скорее в имя хоста IP-адреса хоста, который вы запросили (например, "dfw25s08-in-f142"). .1e100.net "; интересная новость: 1e100 - 1 гуголь).

Также обратите внимание, что DNS-узлы могут иметь более одного имени. Это характерно для хостов с более чем одним веб-сервером (виртуальный хостинг), хотя это становится все менее распространенным благодаря распространению технологий виртуализации. Эти хосты имеют несколько записей PTR DNS .

Наконец, обратите внимание, что записи хоста DNS могут быть переопределены на локальной машине через / etc / hosts . Если вы не получаете ожидаемое имя хоста, обязательно проверьте этот файл.

DHCP Имена хостов запрашиваются по-разному, в зависимости от того, какое программное обеспечение DHCP-сервера используется, потому что (насколько я знаю) протокол не определяет метод запроса; однако большинство серверов предоставляют такой способ (обычно с привилегированной учетной записью).

Примечание. Имена DHCP обычно синхронизируются с DNS-серверами, поэтому часто встречаются одинаковые имена хостов в таблице наименьших клиентов DHCP и в записях DNS-сервера A (или AAAA для IPv6). Опять же, это обычно делается как часть zeroconf.

Также обратите внимание, что то, что аренда DHCP существует для клиента, не означает, что она все еще используется.

NetBIOS для TCP / IP (NBT) использовался десятилетиями для выполнения разрешения имен, но с тех пор был заменен на LLMNR для разрешения имен (часть zeroconf в Windows). Эта устаревшая система все еще может запрашиваться с nbtstat (Windows) или nmblookup (Linux).

7 голосов
/ 21 октября 2015
python -c "import socket;print(socket.gethostbyaddr('127.0.0.1'))"

если вам просто нужно имя, без дополнительной информации, добавьте [0] в конце:

python -c "import socket;print(socket.gethostbyaddr('8.8.8.8'))[0]"
2 голосов
/ 18 марта 2009

Другие ответы здесь верны - используйте обратный поиск DNS. Если вы хотите сделать это с помощью языка сценариев (Python, Perl), вы можете использовать API gethostbyaddr.

0 голосов
/ 30 октября 2015

Если вы специально ищете компьютер с Windows, попробуйте следующую команду:

nbtstat -a 10.228.42.57
0 голосов
/ 30 января 2012

В большинстве случаев команда traceroute работает нормально. Команды nslookup и host могут завершиться ошибкой.

...