From b34c796ab6be6e3eb6573842284011e00d5313dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 9 Sep 2021 21:31:22 +0200 Subject: Adding ddns-client commands. Signed-off-by: Daniel Baumann --- ddns-client/libexec/ddns-client/remove | 83 ++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100755 ddns-client/libexec/ddns-client/remove (limited to 'ddns-client/libexec/ddns-client/remove') diff --git a/ddns-client/libexec/ddns-client/remove b/ddns-client/libexec/ddns-client/remove new file mode 100755 index 0000000..de14479 --- /dev/null +++ b/ddns-client/libexec/ddns-client/remove @@ -0,0 +1,83 @@ +#!/bin/sh + +# Copyright (C) 2014-2021 Daniel Baumann +# +# SPDX-License-Identifier: GPL-3.0+ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +set -e + +. /etc/network-tools/config/ddns-client.conf + +# alternatives handling for knsupdate/nsupdate +if command -v knsupdate > /dev/null 2>&1 +then + # knot-dnsutils + NSUPDATE="knsupdate -k ${TSIG_KEYFILE}" +elif command -v nsupdate > /dev/null 2>&1 +then + # bind9-dnsutils + NSUPDATE="nsupdate -k ${TSIG_KEYFILE}" +else + echo "'${HOOK}': need nsupdate from bind9-dnsutils or knot-dnsutils" >&2 + exit 1 +fi + +# alternatives handling for wget/curl +if command -v wget > /dev/null 2>&1 +then + # wget + GET="wget -q -O - -U $(basename "${0}")/git" +elif command -v curl > /dev/null 2>&1 +then + # curl + GET="curl -s -A $(basename "${0}")/git" +else + echo "'${HOOK}': need wget or curl" >&2 + exit 1 +fi + +IPV4_ADDRESS="$(${GET} -4 https://tools.bfh.info/api/v0/ipv4/address/ | jq -r -M '.data.ipv4_address')" +IPV6_ADDRESS="$(${GET} -6 https://tools.bfh.info/api/v0/ipv6/address/ | jq -r -M '.data.ipv6_address')" + +DATE="$(date +%Y-%m-%d\ %H:%M:%S)" + +Update_record () +{ + ACTION="${1}" + TYPE="${2}" + ADDRESS="${3}" + + echo -n "${NAMESERVER}: ${ACTION} ${RECORD}.${ZONE} ${TTL} ${TYPE} ${ADDRESS}:" + +# shellcheck disable=SC2086 +echo "server ${NAMESERVER} +zone ${ZONE} +ttl ${TTL} +update ${ACTION} ${RECORD}.${ZONE} ${TTL} ${TYPE} ${ADDRESS} +send" | ${NSUPDATE} + + echo " done." +} + +# Run +for NAMESERVER in ${NAMESERVERS} +do + Update_record delete AAAA + Update_record delete A + Update_record delete TXT + + echo +done -- cgit v1.2.3