"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:
Réponse des outils à la question:
Doit être réglé
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):
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)
Aucun résultat connexe trouvé
Invité:
Pour répondre aux questions, connectez-vous ou registre
1 réponses
Catherine
Confirmation de: