summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoruvok cheetah2025-02-02 14:59:12 +0100
committeruvok cheetah2025-02-02 14:59:12 +0100
commit2b31cd58c12f8e6856435445cbfb61a130c37f7a (patch)
tree6e2d1d017bcddcf4efbbeea28c0217dc41f718f2
parent6078935504c752afebefd8e570a6f29f6b05bcdb (diff)
Various desec stuff
-rw-r--r--other_scripts/desec.py26
-rwxr-xr-xother_scripts/desec.sh37
2 files changed, 63 insertions, 0 deletions
diff --git a/other_scripts/desec.py b/other_scripts/desec.py
new file mode 100644
index 0000000..ac7b9c4
--- /dev/null
+++ b/other_scripts/desec.py
@@ -0,0 +1,26 @@
+import requests
+
+url = "https://desec.io/api/v1/domains/"
+response = requests.get(url, headers={"Authorization": "Token <your_token_here>"})
+data = response.json()
+
+domains = [item['name'] for item in data]
+
+print("| Counter | Name |")
+print("| ------- | ---- |")
+for i, name in enumerate(domains):
+ print(f"| {i+1} | {name} |")
+
+query = input("Enter a counter or a name: ")
+seldomain = None
+
+try:
+ query = int(query)
+ if query < 1 or query > len(domains):
+ raise ValueError
+ seldomain = domains[query-1]
+except ValueError:
+ if query not in domains:
+ print("The name is not present in the table.")
+ continue
+ seldomain = query
diff --git a/other_scripts/desec.sh b/other_scripts/desec.sh
new file mode 100755
index 0000000..dccbdfe
--- /dev/null
+++ b/other_scripts/desec.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+domain="dyn.uvok.de"
+
+[[ -z ${1} ]] && { echo "Must provide arg" >&2 ; exit 1; }
+
+if type -p pass >/dev/null 2>&1; then
+ tokid=$(pass desec/dyndns/user)
+ toksec=$(pass desec/dyndns/pass)
+else
+ read -r -p "Enter token ID: " tokid
+ read -r -s -p "Enter token secret: " toksec
+fi
+
+url="https://desec.io/api/v1/auth/tokens/${tokid}/policies/domain/"
+authhdr="Authorization: Token ${toksec}"
+echo
+
+case "$1" in
+ create)
+ curl -X POST "$url" --header "$authhdr" --header "Content-Type: application/json" --data @- <<< '{"domain": null}'
+ echo
+ # fall-through
+ ;&
+ update)
+ curl -X POST "$url" --header "$authhdr" --header "Content-Type: application/json" --data @- <<< '{"domain": "'"$domain"'", "perm_dyndns": true}'
+ echo
+ ;;
+ check)
+ curl -X GET "$url" --header "$authhdr"
+ echo
+ ;;
+ *)
+ echo "Invalid parameter. Please enter one of 'create', 'update', 'check'."
+ ;;
+esac
+