Какая команда для поиска имени компьютера по IP-адресу?
Я всегда забываю, что это за команда, но я знаю, что она существует в Windows, и я предполагаю, что она существует в командной строке * nix.
Какая команда для поиска имени компьютера по IP-адресу?
Я всегда забываю, что это за команда, но я знаю, что она существует в Windows, и я предполагаю, что она существует в командной строке * nix.
Ответы:
копать и хост должен быть то что ты ищешь;)
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/
На * nix вы можете использовать:
dig -x [address]
dig -x [address] +short
+short
флаг действительно полезен!
man dig
, адрес находится адрес IPv4 в точечно-числовом формате, или двоеточия адреса IPv6.
На этот вопрос уже есть миллион ответов, но я добавлю еще один. Вот небольшая функция, которую я написал для упрощения обратного DNS с помощью dig. Добавьте это в свой ~/.bashrc
файл, перезагрузите оболочку, и затем вы сможете выполнить обратный поиск 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 -x dot-notation
это «ярлык для обратного поиска». Мне было интересно, какой будет длинная версия. Спасибо за объяснение! :)
man dig
: Когда используется -x, нет необходимости указывать имя, класс и аргументы типа. dig автоматически выполняет поиск имени, например 94.2.0.192.in-addr.arpa, и устанавливает тип запроса и класс в PTR и IN соответственно.
Я хорошо знаю, что 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
Прямой поиск с помощью 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 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.
Если вы используете nslookup, то именно это (при условии 192.168.0.1 в качестве рассматриваемого IP)
> set type=ptr
> 1.0.168.192.in-addr.arpa
РЕДАКТИРОВАТЬ: Помните, что обратный поиск работает только в том случае, если для IP-адреса создана запись PTR, и не гарантируется возвращение искомого имени хоста. Полностью зависит от того, как DNS настроен и поддерживается в вашей ситуации.
Ну, какой-то дружелюбный человек только что написал команду nslookup, и он прав. Работает как на Unix, так и на Windows. Не уверен, почему вы удалили свой ответ, но вы правы, сэр.
Я предпочитаю копать в командной строке для Windows (доступно здесь: http://members.shaw.ca/nicholas.fong/dig/ ) nslookup в любой день.
Если вам нужно протестировать / администрировать DNS с рабочей станции Windows, воспользуйтесь этим инструментом. Затем:
C:\dig>dig -x <IP Address>
... также не забудьте добавить c: \ dig к своему пути!
drill
утилитой из ldns, т.е.drill -x 123.123.123.123