как найти имя хоста по IP без входа на хост

128

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

user75536
источник
19
NBTSTAT -A 10.10.10.10 для windows
Канагавелу Сугумар
2
Ты когда-нибудь примешь ответ?
Паоло Стефан
2
@PaoloStefan, если пользователя в последний раз видели в 2009 году, это маловероятное событие
Борис Треухов

Ответы:

163

Используйте nslookup

nslookup 208.77.188.166 
...
Non-authoritative answer:
166.188.77.208.in-addr.arpa     name = www.example.com.
Vartec
источник
2
при установке centos вам нужно sudo yum install bind-utilsсначала запустить . это установит для вас поиск nslookup
lfender6445 05
nslookup устарел. Вместо этого вы можете использовать «копать» или «хост»
П. Барбадью
74

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

$ host 192.168.0.10
server10 has address 192.168.0.10

источник
43

Утилита Другого NS Lookup , который может быть использован для обратной перекодировки 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-адрес, разделенный двоеточиями. При использовании этой опции нет необходимости указывать аргументы имени, класса и типа. 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]"
Илья Харламов
источник
Он говорит, недопустимый сокет подсветки синтаксиса.
Сандип Рой,
1
для python3 измените печать на функцию со скобками:python -c "import socket;print(socket.gethostbyaddr('10.16.7.10'))"
Кори Голдберг,
7

Это зависит от контекста. Я думаю, вы имеете в виду имя хоста операционной системы (возвращается, 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 могут иметь более одного имени. Это обычное явление для хостов с более чем одним веб-сервером (виртуальный хостинг), хотя это становится все реже благодаря распространению технологий виртуализации. Эти хосты имеют несколько записей DNS PTR .

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

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

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

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

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

Johntron
источник
@John Syrinek. Не могли бы вы подробнее рассказать о запросе имен хостов DHCP? Я хочу запросить имя хоста другого компьютера (в том же wlan) по IP, возможно ли это?
jfly
2

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

Моше
источник
0

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

nbtstat -a 10.228.42.57
Гьяна Ранджан
источник
-1

Вы также можете использовать команду traceroute.

http://linux.die.net/man/8/traceroute

просто используйте traceroute, он покажет вам путь маршрутизации с именами хостов (разрешенные IP-адреса)

Чатуранга Чандрасекара
источник
См. Комментарий Оттавио Кампаны ниже: stackoverflow.com/questions/657482/…
icedwater
-1

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

Arun
источник
4
это неправильно: учитывая IP, единственное, что нужно сделать, - это обратный запрос к DNS. Таким образом, traceroute - это неподходящий инструмент.
Оттавио Кампана,