Qualsiasi lib di pitone per l'analisi dei file di zona Bind? Fondamentalmente qualcosa che aiuti ad aggiungere/rimuovere zone e record. Questo deve funzionare anche se qualcuno modifica manualmente il file di zona, quindi sovrascrivere i file di zona ogni volta non è una soluzione.Qualsiasi lib di pitone per l'analisi dei file di zona Bind?
risposta
sono stato in grado di utilizzare bicop per i file di zona classici come questi:
$TTL 86400
@ IN SOA ns1.first-ns.de. postmaster.robot.first-ns.de. (
2006040800 ; serial
14400 ; refresh
1800 ; retry
604800 ; expire
86400) ; minimum
@
IN NS ns1.first-ns.de.
avrò uno sguardo al dnspython
Vedere risposta sopra a proposito di bicop.
Per inciso, il pacchetto Indice Python in http://pypi.python.org/pypi è un ottimo posto per cercare i pacchetti Python.
EDIT: Il seguente può ancora essere utile a qualcuno che cerca di capire un semplice parsing, ma bicop è apparentemente una soluzione esistente.
Se qualcuno ha modificato la configurazione a mano e non si desidera sovrascriverla, ciò implica che si desidera inserire/rimuovere linee da una configurazione esistente, lasciando intatti tutti i commenti ecc.? Ciò impedisce l'analisi e quindi ri-outputting della configurazione, ma anche questo è positivo: non è necessario analizzare completamente il file per raggiungere l'obiettivo.
Per aggiungere un record, si potrebbe provare un approccio semplice come
# define zone_you_care_about and line_you_wish_to_insert first, then:
for line in bindfile.read():
out.write(line + '\n')
if ('zone "%s" in' % zone_you_care_about) in line:
out.write(line_you_wish_to_insert)
codice simile funziona per la rimozione di una linea:
# define zone_you_care_about and relevant_text_to_remove, then:
for line in bindfile.read():
if not relevant_text_to_remove in line:
out.write(line + '\n')
si può ottenere, per quanto è necessario, con semplici frammenti di codice come questo.
Vedere la mia risposta qui sotto su bicop. Forse dovresti usare google (è il secondo hit per "bind config file in python") piuttosto che l'interfaccia di ricerca carente di pypi :). – Glyph
Ho fatto google e sono riuscito a mancarlo comunque. Penso di aver provato "bind python parse". Aggiornerò la mia risposta –
Si potrebbe provare bicop
"una libreria Python per elaborare i file di configurazione si legano in stile ISC".
Questo supporterà la richiesta di Daniels di conservare le modifiche a mano? –
Da quello che posso dire che 'bicop' non supporta l'analisi dei file di zona, solo i file di configurazione BIND. La domanda richiama specificamente i file di zona. –
Sam Harris è corretto. Un file di configurazione Bind non è uguale a un file di zona DNS. Si prega di cancellare questa risposta, in quanto è fuorviante e off-topic. – Cerin
So che questo è vecchio ma quello lavorando solo ho potuto trovare è chiamato iscpy. Puoi fare un easy_install.
easy_install iscpy
Poi in python:
import iscpy
iscpy.ParseISCString(open('somefile.conf', 'r').read())
che restituisce un dizionario.
Da quello che posso dire 'iscpy' non supporta l'analisi dei file di zona, solo i file di configurazione BIND. La domanda richiama specificamente i file di zona. –
Bind utilizza due diversi formati di file di configurazione: uno per la configurazione del server (ad esempio /etc/named.conf) e l'altro per i file di zona (ad esempio /var/named/localhost.zone). Questi strumenti riguardano i file di configurazione, mentre si parla di file di zona. – tylerl