it-swarm-ru.tech

Что такое обратная утилита командной строки DNS?

Какая команда для поиска имени компьютера по IP-адресу?

Я всегда забываю, что это за команда, но я знаю, что она существует в Windows, и я предполагаю, что она существует в командной строке * nix.

75
Peter Turner

Копать и Хост должен быть тем, что вы ищете;)

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

В системе * nix вы можете выполнить эту команду: Dig -x [address]

В качестве альтернативы вы можете добавить +short в конце команды Dig для вывода только результата dns.

В Windows используйте nslookup

Правка: nslookup тоже работает на * nix системах. Более подробная информация о команде nslookup, кажется ли, что она была заменена некоторое время: http://linuxreviews.org/man/nslookup/

59
Marc-Andre R.

На * nix вы можете использовать:

Dig -x [address]
54
palehorse

На большинстве известных мне Linux-систем вы можете использовать:

 nslookup <ip-number EX: 127.0.0.1>

будет работать в командной строке.

Если подумать, разве nslookup не доступен в Windows XP?

8
mdpc

На этот вопрос уже есть миллион ответов, но я добавлю еще один. Вот небольшая функция, которую я написал для легкого выполнения обратного DNS с Dig. Добавьте это к вашему ~/.bashrc, перезагрузите Shell, и затем вы можете выполнить обратный поиск 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}"
}

Обратный поиск в DNS выполняется путем проверки записей указателя (PTR). Если вы хотите сделать обратный DNS для "1.2.3.4", вы должны искать записи указателей для "4.3.2.1.in-addr.arpa". Моя функция получает IP-адрес, меняет порядок октетов (то есть меняет его с 1.2.3.4 на 4.3.2.1) и затем использует Dig для выполнения поиска PTR, который я только что описал.

Вы можете, конечно, просто использовать nslookup 1.2.3.4 если у вас есть, но я предпочитаю это решение на основе Dig, потому что оно использует DNS-серверы ОС вместо предоставленных nslookup (если вы хотите, между прочим, вы можете добавить дополнительные флаги Dig при вызове revdns, и они будут переданы в Dig)

4
Hayden Schiff

Попробуйте "Хост"

  • Прямой поиск с помощью 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:

    $ 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.
    
3
StackzOfZtuff

Я хорошо знаю, что Dig/Host/nslookup являются стандартными инструментами для них, но я оставляю их для тестирования разрешения ОС (по сути, для проверки правильности работы 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
3
jj33

В Windows я привык к использованию:

ping -a <ip address>

поскольку это также будет отражать данные из вашего файла hosts и ​​WINS и т. д.).

3
Dave Webb

Если вы используете nslookup, то именно это (при условии 192.168.0.1 в качестве рассматриваемого IP)

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

EDIT: Помните, что обратный поиск работает только в том случае, если для IP-адреса создана запись PTR и не гарантировано возвращение искомого имени хоста. Полностью зависит от того, как DNS настроен и поддерживается в вашей ситуации.

1
squillman

Powershell:

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

Я предпочитаю командную строку Dig для Windows (доступна здесь: http://members.shaw.ca/nicholas.fong/Dig/ ) nslookup в любой день.

Если вам нужно протестировать/администрировать DNS с рабочей станции Windows, воспользуйтесь этим инструментом. Затем:

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

... также не забудьте добавить c:\Dig к своему пути!

0
Cory J

Ну, какой-то дружелюбный человек только что написал команду nslookup, и он прав. Работает как на Unix, так и на Windows. Не уверен, почему вы удалили свой ответ, но вы правы, сэр.

0
Peter Turner

Это мой взгляд на более полный обратный поиск в DNS. Надеюсь, что это пригодится будущим зрителям этой страницы.

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