"Recherche inverse" dans le fichier texte de zone de texte DNS

Y a-t-il un outil existant ou un moyen cool ou intéressant de trouver tous les éléments du fichier de zone DNS, lequel "Autorisé" Sur cette adresse IP? (Sans utiliser un serveur DNS)

Par exemple, nous pouvons avoir la prochaine configuration non bien organisée. DNS:

        example.org. 60 IN A     10.0.0.1
new.example.org. 60 IN A 10.0.0.10
www.example.org. 60 IN CNAME example.org.
old.example.org. 60 IN CNAME www.example.org.
toaster.example.org. 60 IN CNAME bigbox.example.org.
cutebox.example.org. 60 IN A new.example.org.
bigbox.example.org. 60 IN A 10.0.0.1

Réponse des outils à la question:

10.0.0.1

Doit être réglé

example.org, www.example.org, old.example.org, toaster.example.org, bigbox.example.org

Rafraîchir

: Pour clarifier: nous avons un fichier de zone de domaine disponible

Rafraîchir

: Le scénario suivant que je viens de copier, fait presque exactement ce que je voulais (En attente d'un fichier de zone DNS Sur l'entrée standard) (Pas de support IPv6 :-P):

#! /usr/bin/env python

import re
import sys

cols = (0, 4)
type_col = 3
types = ('A', 'CNAME')

if len(sys.argv) != 2:
sys.exit('query not given (IP or hostname)')

query = sys.argv[1]

rex_not = re.compile(r'^\s*;')

relations = []
found = set([query])

def filter_pairs(l, f):
for itm in l:
if itm[1] in f: yield itm

in_pairs = []
for line in sys.stdin:
if rex_not.match(line): continue
itms = re.split(r'\s+', line.strip())
try:
typ = itms[type_col]
if typ not in types: continue
a, b = (itms[cols[0]], itms[cols[1]])
except IndexError: continue
if a and b: in_pairs.append((a, b))

oldpairs = in_pairs[:]

while True:
pairs = list(filter_pairs(in_pairs, found))
for itm in pairs: found.add(itm[0])
if len(pairs) == len(oldpairs): break
oldpairs = pairs

found = found.difference(set([query]))

for x in found: print(x)
Invité:

Catherine

Confirmation de:

Il est impossible de faire s'il n'y a pas d'enregistrement pour chacun d'eux. DNS. Bien sûr, certaines personnes vous diront que cela est possible et vous indique même sur beaucoup de sites Web qui prétendent que cela se fait, mais le fait est que c'est tout simplement impossible.

Pour répondre aux questions, connectez-vous ou registre