Я хочу получить пары сервер имен - ip для некоторого домена. Например, есть домен serverfault.com. Я хочу получить:
NS1.SERVERFAULT.COM - 198.252.206.80
NS2.SERVERFAULT.COM - 198.252.206.81
Возможно ли это? Я пытаюсь использовать nslookup, но безуспешно.
Обновление. Я обнаружил команду: C: \ Users \ Nick> nslookup -type = ns serverfault.com , но у меня она не работает:
C:\Users\Nick>nslookup -type=ns serverfault.com
Server: UnKnown
Address: 62.68.141.212
Non-authoritative answer:
serverfault.com nameserver = ns3.serverfault.com
serverfault.com nameserver = ns4.serverfault.com
serverfault.com nameserver = ns2.serverfault.com
serverfault.com nameserver = ns1.serverfault.com
Чтобы найти серверы имен данного домена, вы можете использовать nslookup для получения записи SOA. Используя serverfault.com
в качестве примера:
C:\> nslookup Default Server: <foo> Address: <bar> > set type=SOA > serverfault.com Server: <foo> Address: <bar> Non-aithoritative answer: serverfault.com primary name server = ns1.serverfault.com responsible mail addr = sysadmins.stackoverflow.com serial = 2013072101 refresh = 600 (10 mins) retry = 600 (10 mins) expire = 604800 (7 days) default TTL = 1440 (24 mins) serverfault.com nameserver = ns2.serverfault.com serverfault.com nameserver = ns1.serverfault.com > exit C:\>
Затем вы просто запускаете nslookup
для перечисленных серверов имен, чтобы получить соответствующие IP-адреса.
Часть / a запроса, которую вы хотите, называется «полномочия». Тип записи называется NS.
Я использую для этого «копать». Поскольку Windows не хватает инструментов, я устанавливаю пакет Cygwin (бесплатный, с открытым исходным кодом), который включает его.
nslookup также может это делать и доступен по умолчанию в системах Windows. В моей более старой системе Windows nslookup, который поставляется вместе, может дать вам это через (по крайней мере) запрос «все записи» или «ns records».
Вот как это делается с помощью командной строки моего окна XP для Google.com :
nslookup
> set type=NS
> google.com
Server: h-67-100-88-26.snfc.ca.megapath.net
Address: 67.100.88.26
Non-authoritative answer:
google.com nameserver = ns4.google.com
google.com nameserver = ns1.google.com
google.com nameserver = ns2.google.com
google.com nameserver = ns3.google.com
ns3.google.com internet address = 216.239.36.10
ns4.google.com internet address = 216.239.38.10
ns1.google.com internet address = 216.239.32.10
ns2.google.com internet address = 216.239.34.10
>
Ниже приведен экран справки для Windows XP Corporate Edition nslookup:
Commands: (identifiers are shown in uppercase, [] means optional)
ИМЯ - распечатать информацию об ИМЯ хоста / домена с использованием сервера по умолчанию NAME1 NAME2 - как указано выше, но использовать NAME2 в качестве сервера помощь или? - распечатать информацию об общих командах set OPTION - установить опцию все - параметры печати, текущий сервер и хост [no] debug - распечатать отладочную информацию [no] d2 - вывести исчерпывающую отладочную информацию [no] defname - добавлять имя домена к каждому запросу [no] recurse - запрашивать рекурсивный ответ на запрос [no] search - использовать список поиска доменов [no] vc - всегда использовать виртуальный канал domain = NAME - установить имя домена по умолчанию на NAME srchlist = N1 [/ N2 /.../ N6] - установить домен на N1 и список поиска на N1, N2 и т. д. root = NAME - установить для корневого сервера NAME retry = X - установить количество повторов равным X timeout = X - установить начальный интервал тайм-аута на X секунд type = X - установить тип запроса (например, A, ANY, CNAME, MX, NS, PTR, SOA, SRV) querytype = X - то же, что и type class = X - установить класс запроса (например, IN (Интернет), ANY) [no] msxfr - использовать MS fast zone transfer ixfrver = X - текущая версия для использования в запросе передачи IXFR ИМЯ сервера - установить сервер по умолчанию на ИМЯ, используя текущий сервер по умолчанию lserver NAME - установить сервер по умолчанию на NAME, используя исходный сервер finger [USER] - нажмите необязательное ИМЯ на текущем хосте по умолчанию root - установить текущий сервер по умолчанию в корень ls [opt] DOMAIN [> FILE] - список адресов в DOMAIN (необязательно: вывод в ФАЙЛ) -a - список канонических имен и псевдонимов -d - вывести все записи -t TYPE - вывести список записей данного типа (например, A, CNAME, MX, NS, PTR и т. д.) view FILE - отсортировать выходной файл ls и просмотреть его с помощью pg exit - выйти из программы
Это первая из "страниц руководства" для dig:
DIG(1) BIND9 DIG(1)
NAME dig - служебная программа поиска DNS
ОБЗОР dig [@server] [-b адрес] [-c класс] [-f имя файла] [-k имя файла] [-m] [-p номер порта] [-q имя] [-t тип] [-x адрес] [-y [hmac:] имя: ключ] [-4] [-6] [имя] [тип] [класс] [queryopt ...]
dig [-h]
dig [global-queryopt...] [query...]
ОПИСАНИЕ dig (поиск информации о домене) - гибкий инструмент для опроса DNS-серверы имен. Он выполняет поиск в DNS и отображает ответы, которые возвращаются с запрошенных серверов имен. Большинство DNS администраторы используют dig для устранения проблем с DNS из-за его гибкость, простота использования и ясность вывода. Другие инструменты поиска имеют тенденцию иметь меньшую функциональность, чем dig.
Although dig is normally used with command-line arguments, it also has
a batch mode of operation for reading lookup requests from a file. A
brief summary of its command-line arguments and options is printed when
the -h option is given. Unlike earlier versions, the BIND 9
implementation of dig allows multiple lookups to be issued from the
command line.
Unless it is told to query a specific name server, dig will try each of
the servers listed in /etc/resolv.conf.
When no command line arguments or options are given, dig will perform
an NS query for "." (the root).
It is possible to set per-user defaults for dig via ${HOME}/.digrc.
This file is read and any options in it are applied before the command
line arguments.
The IN and CH class names overlap with the IN and CH top level domains
names. Either use the -t and -c options to specify the type and class,
use the -q the specify the domain name, or use "IN." and "CH." when
looking up these top level domains.
Самым кратким, что я могу придумать, является использование dig:
$ dig +noall +additional -t ns google.com
ns4.google.com. 27791 IN A 216.239.38.10
ns1.google.com. 27791 IN A 216.239.32.10
ns2.google.com. 27791 IN A 216.239.34.10
ns3.google.com. 27791 IN A 216.239.36.10
Обратите внимание, что на самом деле это кэшированные клеевые записи. Если вы хотите получить ответ от самого авторитетного сервера имен, вам нужно спросить его напрямую. Самый простой способ сделать это - использовать + trace
, тогда просто посмотрите на последний полученный ответ.
$ dig +trace +noall +additional google.com ns
m.root-servers.net. 85952 IN A 202.12.27.33
m.root-servers.net. 85952 IN AAAA 2001:dc3::35
a.root-servers.net. 85952 IN A 198.41.0.4
a.root-servers.net. 85952 IN AAAA 2001:503:ba3e::2:30
h.root-servers.net. 85952 IN A 128.63.2.53
h.root-servers.net. 85952 IN AAAA 2001:500:1::803f:235
d.root-servers.net. 41980 IN A 199.7.91.13
d.root-servers.net. 41980 IN AAAA 2001:500:2d::d
c.root-servers.net. 85952 IN A 192.33.4.12
j.root-servers.net. 85952 IN A 192.58.128.30
j.root-servers.net. 85952 IN AAAA 2001:503:c27::2:30
b.root-servers.net. 85952 IN A 192.228.79.201
k.root-servers.net. 85952 IN A 193.0.14.129
;; Received 509 bytes from 10.19.12.20#53(10.19.12.20) in 6 ms
a.gtld-servers.net. 172800 IN A 192.5.6.30
a.gtld-servers.net. 172800 IN AAAA 2001:503:a83e::2:30
b.gtld-servers.net. 172800 IN A 192.33.14.30
b.gtld-servers.net. 172800 IN AAAA 2001:503:231d::2:30
c.gtld-servers.net. 172800 IN A 192.26.92.30
d.gtld-servers.net. 172800 IN A 192.31.80.30
e.gtld-servers.net. 172800 IN A 192.12.94.30
f.gtld-servers.net. 172800 IN A 192.35.51.30
g.gtld-servers.net. 172800 IN A 192.42.93.30
h.gtld-servers.net. 172800 IN A 192.54.112.30
i.gtld-servers.net. 172800 IN A 192.43.172.30
j.gtld-servers.net. 172800 IN A 192.48.79.30
k.gtld-servers.net. 172800 IN A 192.52.178.30
l.gtld-servers.net. 172800 IN A 192.41.162.30
;; Received 500 bytes from 192.58.128.30#53(192.58.128.30) in 148 ms
ns2.google.com. 172800 IN A 216.239.34.10
ns1.google.com. 172800 IN A 216.239.32.10
ns3.google.com. 172800 IN A 216.239.36.10
ns4.google.com. 172800 IN A 216.239.38.10
;; Received 164 bytes from 192.42.93.30#53(192.42.93.30) in 174 ms
ns4.google.com. 345600 IN A 216.239.38.10
ns2.google.com. 345600 IN A 216.239.34.10
ns1.google.com. 345600 IN A 216.239.32.10
ns3.google.com. 345600 IN A 216.239.36.10
;; Received 164 bytes from 216.239.36.10#53(216.239.36.10) in 12 ms
Обычно это то же самое, но если домен находится в процессе переключения серверов имен, он может отличаться .