summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorBob Halley <halley@dnspython.org>2016-12-18 11:22:18 -0800
committerBob Halley <halley@dnspython.org>2016-12-18 11:22:18 -0800
commit59f63a7a708dfeca234945118e4f0d33809d9d7e (patch)
tree7341a50fe9bcfd68ad72a61007581b74240a8182 /examples
parent4aa198983c45e2987aa6b7675011704d0595899f (diff)
downloaddnspython-59f63a7a708dfeca234945118e4f0d33809d9d7e.tar.gz
add example of receiving notify messages
Diffstat (limited to 'examples')
-rw-r--r--examples/receive_notify.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/examples/receive_notify.py b/examples/receive_notify.py
new file mode 100644
index 0000000..76976f7
--- /dev/null
+++ b/examples/receive_notify.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python3
+
+import socket
+
+import dns.flags
+import dns.message
+import dns.rdataclass
+import dns.rdatatype
+
+address = '127.0.0.1'
+port = 53535
+
+s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+s.bind((address, port))
+while True:
+ (wire, address) = s.recvfrom(512)
+ notify = dns.message.from_wire(wire)
+ soa = notify.find_rrset(notify.answer, notify.question[0].name,
+ dns.rdataclass.IN, dns.rdatatype.SOA)
+
+ # Do something with the SOA RR here
+ print('The serial number for', soa.name, 'is', soa[0].serial)
+
+ response = dns.message.make_response(notify)
+ response.flags |= dns.flags.AA
+ wire = response.to_wire(response)
+ s.sendto(wire, address)