Como obter pares de servidor de nomes - ip para algum domínio? [fechadas]

2

Eu quero pegar pares de nome server - ip para algum domínio. Por exemplo, existe o domínio serverfault.com. Eu quero pegar:

NS1.SERVERFAULT.COM - 198.252.206.80
NS2.SERVERFAULT.COM - 198.252.206.81

É possível? Eu tento usar o nslookup, mas não tenho sucesso.

Atualizar. Eu descubro o comando: C: \ Usuários \ Nick > nslookup -type = ns serverfault.com , mas isso não funciona para mim:

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
    
por Denis 20.09.2013 / 13:29

3 respostas

3

Para encontrar os servidores de nomes de um determinado domínio, você pode usar nslookup para pegar o registro SOA. Usando serverfault.com como exemplo:

C:\> nslookup
Default Server: <foo>
Address: <bar>

> set type=SOA
> serverfault.com
Server: <foo>
Address: &ltbar>

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:\>

Em seguida, basta executar nslookup nos servidores de nomes listados para obter os IPs correspondentes.

    
por 20.09.2013 / 13:51
4

A parte da consulta / a que você deseja é chamada de "autoridade". O tipo de registro é chamado NS.

Eu uso "dig" para isso. Como o Windows não tem ferramentas, eu instalo o pacote Cygwin (gratuito e de código aberto) nele incluído.

O nslookup também pode fazer isso e está disponível por padrão nos sistemas Windows. No meu sistema Windows mais antigo, o nslookup que vem com você pode fornecer isso via (pelo menos) por meio de um pedido de "todos os registros" ou "registros ns".

Estou fazendo isso com o prompt cmd da minha caixa de XP para o 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
>

A seguir está a tela de ajuda para o nslookup do Windows XP Corporate Edition:

Commands:   (identifiers are shown in uppercase, [] means optional)

NAME - imprime informações sobre o NOME do host / domínio usando o servidor padrão NAME1 NAME2 - como acima, mas use NAME2 como servidor ajudar ou? - imprimir informações em comandos comuns definir OPÇÃO - definir uma opção     all - opções de impressão, servidor atual e host     [no] debug - imprime informações de depuração     [no] d2 - imprime informações exaustivas de depuração     [no] defname - anexa nome de domínio a cada consulta     [no] recurse - pedir resposta recursiva para consultar     [no] search - use a lista de pesquisa de domínios     [no] vc - sempre use um circuito virtual     domain = NAME - define o nome de domínio padrão para NAME     srchlist = N1 [/ N2 /.../ N6] - define o domínio para N1 e lista de busca para N1, N2, etc.     root = NAME - define o servidor raiz como NAME     retry = X - define o número de tentativas para X     tempo limite = X - definir intervalo inicial de tempo limite para X segundos     type = X - define o tipo de consulta (ex. A, ANY, CNAME, MX, NS, PTR, SOA, SRV)     querytype = X - o mesmo que o tipo     class = X - define classe de consulta (ex. IN (Internet), ANY)     [no] msxfr - usa a transferência de zona rápida do MS     ixfrver = X - versão atual para usar na solicitação de transferência IXFR servidor NAME - define o servidor padrão como NAME, usando o servidor padrão atual lserver NAME - define o servidor padrão como NAME, usando o servidor inicial finger [USER] - digite o NOME opcional no host padrão atual root - definir servidor padrão atual para a raiz ls [opt] DOMAIN [> FILE] - lista endereços em DOMAIN (opcional: saída para FILE)     -a - lista nomes canônicos e aliases     -d - lista todos os registros     -t TYPE - lista registros do tipo dado (por exemplo, A, CNAME, MX, NS, PTR etc.) view FILE - classifica um arquivo de saída 'ls' e visualiza com pg sair - sair do programa

A seguir, a primeira das "man pages" para dig:

DIG(1)                               BIND9                              DIG(1)

NAME        dig - utilitário de pesquisa de DNS

SINOPSE        dig [[servidor] [-b endereço] [-c classe] [-f nome_do_arquivo] [-k nome_do_arquivo] [-m]            [-p port #] [-q nome] [-t tipo] [-x addr] [-y [hmac:] nome: chave] [-4]            [-6] [nome] [tipo] [classe] [queryopt ...]

   dig [-h]

   dig [global-queryopt...] [query...]

DESCRIÇÃO        dig (domain information groper) é uma ferramenta flexível para interrogar        Servidores de nomes DNS. Ele realiza pesquisas de DNS e exibe as respostas que        são retornados do (s) servidor (es) de nomes que foram consultados. A maioria dos DNS        administradores usam dig para solucionar problemas de DNS por causa de sua        flexibilidade, facilidade de uso e clareza de saída. Outras ferramentas de pesquisa tendem        ter menos funcionalidade do que escavar.

   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.
    
por 20.09.2013 / 14:03
3

O mais conciso que consigo pensar é usando 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

Observe que esses são, na verdade, os registros de cola em cache. Se você quiser a resposta do próprio servidor de nomes autoritativo, precisará perguntar diretamente. A maneira mais fácil de fazer isso é com +trace , depois é só ver a última resposta que você recebe.

$ 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

Geralmente, são os mesmos, mas se o domínio estiver no meio da troca de servidores de nomes, poderá ser diferente.

    
por 20.09.2013 / 14:30