summaryrefslogtreecommitdiff
path: root/sh/dnd
diff options
context:
space:
mode:
Diffstat (limited to 'sh/dnd')
-rwxr-xr-xsh/dnd30
1 files changed, 30 insertions, 0 deletions
diff --git a/sh/dnd b/sh/dnd
new file mode 100755
index 0000000..411ffa6
--- /dev/null
+++ b/sh/dnd
@@ -0,0 +1,30 @@
+#!/bin/sh
+# DNs Drill
+
+# Usage: dnd, dnd -c, dnd 192.168.0.1, dnd 8.8.8.8
+
+cache=false
+while getopts c opt; do
+ case $opt in
+ c)cache=true;;
+ \?)exit 1;;
+ esac
+done
+shift $((OPTIND-1))
+
+if [ "$1" ]; then
+ echo "$1"
+else
+ echo "default"
+fi
+
+for domain in www.google.com www.baidu.com github.com gitlab.com codeberg.org www.douyu.com flylightning.xyz mirrors.flylightning.xyz git.flylightning.xyz one.sjsu.edu discord.com www.youtube.com mail.google.com mail.yahoo.com en.wikipedia.org zh.wikipedia.org archlinux.org gitlab.archlinux.org aur.archlinux.org wiki.archlinux.org wiki.gentoo.org unix.stackexchange.com stackoverflow.com superuser.com www.reddit.com kyun.host panel.ihostart.com; do
+ if [ "$1" ]; then
+ drill -- "$domain" "@$1" | awk -F: -v domain="$domain" '/^;; Query time: /{printf("%s%s\n",domain,$2)}'
+ else
+ # awk substr and length:
+ # https://stackoverflow.com/a/14840991
+ # https://unix.stackexchange.com/a/305192
+ resolvectl --cache="$cache" query "$domain" | awk -v domain="$domain" '/Information acquired via protocol DNS in/{printf("%s %s\n",domain,substr($NF,0,length($NF)-1))}'
+ fi
+done