Hi,
ich versuche schon den ganzen Tag, eine gute Anleitung zum Ändern von A-Records auf einem DNS-Server zu finden, aber irgendwie komme ich nicht weiter.
Ich habe im Moment dnspython im Auge, aber ich komme damit nicht zurecht.
Hat da jemand mal eine knappe Anleitung wie man sowas am besten realisieren kann?
DNS Records updaten
Hmmm bin mittlerweile bei twisted, das wohl mittels twisted.names auch DNS requests durchführen kann. Aber leider keine gescheite Anleitung vorhanden.
Hat damit schon mal jemand gearbeitet?
Ich will eigentlich nur ein einem bestimmten DNS-Server verbinden, den A-Record lesen und eventuell verändern.
Hat damit schon mal jemand gearbeitet?
Ich will eigentlich nur ein einem bestimmten DNS-Server verbinden, den A-Record lesen und eventuell verändern.
Hi,
Wie toll twisted.names dokumentiert ist durfte ich auch schon feststellen
. Hab auf meiner Festplatte ein kleines Snippet gefunden, vielleicht hilft dir das ja etwas weiter.
client.Resolver kann man auch eine Liste von DNS-Servern im Konstruktor übergeben, ausprobiert habe ich das allerdings noch nicht
Grüße, Mephisto
Wie toll twisted.names dokumentiert ist durfte ich auch schon feststellen

client.Resolver kann man auch eine Liste von DNS-Servern im Konstruktor übergeben, ausprobiert habe ich das allerdings noch nicht

Code: Alles auswählen
from twisted.internet import reactor
from twisted.names import client, dns
def dnscb(records):
if (len(records[0])):
record = records[0][0]
if (isinstance(record.payload, dns.Record_PTR)):
print "Reverse is PTR", record.payload.name.name
def lookup_reverse(host):
resolver = client.Resolver('/etc/resolv.conf')
dnsname = '.'.join(reversed(host.split('.'))) + '.in-addr.arpa'
dnsqry = client.dns.Query(dnsname, client.dns.PTR)
resolver.query(dnsqry).addCallback(dnscb)
lookup_reverse("82.94.237.218")
reactor.run()
Ich hatte das damals hinbekommen, nur jetzt wurden die DNS Server so umgestellt, das nur noch Server in der Windowsdomain die Einträge updaten dürfen.
So sieht die Funktion bisher aus:
Meine Kiste, von der ich die Updates losschicke, ist aber ein Linuxserver. Jetzt habe ich gesehen das dns.update.Update auch einen TSID-Keyring entgegen nimmt, der wohl zur Authentifizierung bei DNS genutzt werden kann.
Hat jemand damit Erfahrung? Wie kann man solch einen Key generieren?
So sieht die Funktion bisher aus:
Code: Alles auswählen
import dns.update
import dns.query
def make_dns_entry(host, outbound):
update = dns.update.Update(_DOMAIN)
update.replace(host.name, 3600, 'a', outbound)
response = dns.query.tcp(update, _NAMESERVER)
return response
Hat jemand damit Erfahrung? Wie kann man solch einen Key generieren?