summaryrefslogtreecommitdiffstats
path: root/third_party/dnspython/examples/ddns.py
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2014-11-07 20:09:10 +0000
committerJeremy Allison <jra@samba.org>2014-11-12 22:40:53 +0100
commitfb39c6fb5edf70097ee31e1b8638838dfc081892 (patch)
tree670982bbd040b87c7acb3d91c0da1a05bfe65994 /third_party/dnspython/examples/ddns.py
parent776424e99113a3ffc6679c583093e2892304a7fd (diff)
downloadsamba-fb39c6fb5edf70097ee31e1b8638838dfc081892.tar.gz
samba-fb39c6fb5edf70097ee31e1b8638838dfc081892.tar.xz
samba-fb39c6fb5edf70097ee31e1b8638838dfc081892.zip
Move dnspython to third_party.
Signed-off-by: Jelmer Vernooij <jelmer@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org> Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Wed Nov 12 22:40:53 CET 2014 on sn-devel-104
Diffstat (limited to 'third_party/dnspython/examples/ddns.py')
-rwxr-xr-xthird_party/dnspython/examples/ddns.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/third_party/dnspython/examples/ddns.py b/third_party/dnspython/examples/ddns.py
new file mode 100755
index 0000000000..84814b73cf
--- /dev/null
+++ b/third_party/dnspython/examples/ddns.py
@@ -0,0 +1,51 @@
+#!/usr/bin/env python
+
+#
+# Use a TSIG-signed DDNS update to update our hostname-to-address
+# mapping.
+#
+# usage: ddns.py <ip-address>
+#
+# On linux systems, you can automatically update your DNS any time an
+# interface comes up by adding an ifup-local script that invokes this
+# python code.
+#
+# E.g. on my systems I have this
+#
+# #!/bin/sh
+#
+# DEVICE=$1
+#
+# if [ "X${DEVICE}" == "Xeth0" ]; then
+# IPADDR=`LANG= LC_ALL= ifconfig ${DEVICE} | grep 'inet addr' |
+# awk -F: '{ print $2 } ' | awk '{ print $1 }'`
+# /usr/local/sbin/ddns.py $IPADDR
+# fi
+#
+# in /etc/ifup-local.
+#
+
+import sys
+
+import dns.update
+import dns.query
+import dns.tsigkeyring
+
+#
+# Replace the keyname and secret with appropriate values for your
+# configuration.
+#
+keyring = dns.tsigkeyring.from_text({
+ 'keyname.' : 'NjHwPsMKjdN++dOfE5iAiQ=='
+ })
+
+#
+# Replace "example." with your domain, and "host" with your hostname.
+#
+update = dns.update.Update('example.', keyring=keyring)
+update.replace('host', 300, 'A', sys.argv[1])
+
+#
+# Replace "10.0.0.1" with the IP address of your master server.
+#
+response = dns.query.tcp(update, '10.0.0.1', timeout=10)