Я хочу получить пару имен сервер - 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
Часть / a запроса, которую вы хотите, называется «авторитет». Тип записи называется NS.
Я использую для этого «копать». Поскольку Windows не хватает инструментов, я устанавливаю пакет Cygwin (бесплатный, с открытым исходным кодом), который включает его.
nslookup также может это делать и доступен по умолчанию в системах Windows. В моей более старой системе Windows nslookup, который поставляется вместе, может предоставить вам это через (по крайней мере) запрос «все записи» или «ns записи».
Вот как это делается с помощью командной строки моего окна 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)
ИМЯ - вывести информацию об ИМЯ хоста / домена, используя сервер по умолчанию ИМЯ1 ИМЯ2 - как указано выше, но использовать ИМЯ2 в качестве справки по серверу или? - распечатать информацию об общих командах установить OPTION - установить опцию all - параметры печати, текущий сервер и хост [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 секунд = 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 ИМЯ сервера - установить сервер по умолчанию на ИМЯ, используя текущий сервер по умолчанию. ИМЯ сервера - установить сервер по умолчанию на ИМЯ, используя начальный палец сервера [ПОЛЬЗОВАТЕЛЬ] - палец er необязательное ИМЯ в текущем корне хоста по умолчанию - установить текущий сервер по умолчанию в корень ls [opt] DOMAIN [> FILE] - вывести список адресов в DOMAIN (необязательно: вывод в ФАЙЛ) -a - перечислить канонические имена и псевдонимы -d - перечислить все записи -t ТИП - перечислить записи заданного типа (например, 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
Обычно это одно и то же, но если домен находится в процессе переключения серверов имен, он может отличаться.
Чтобы найти серверы имен данного домена, вы можете использовать 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-адреса.