export DOTLIST=/path/dot.lst
test -f $DOTLIST ||exec echo $DOTLIST missing
x=$(case $(uname) in :)
;;Linux)shuf $DOTLIST
;;NetBSD)shuffle -f $DOTLIST
esac|sed 's/ \{0,80\}//;/^[ ]\{0,80\}[;#]/d;/^$/d;/./q')
test $x||{
x=$(sed 's/ *//;/[;#]/d;/^$/d' $DOTLIST|sed -n '$!d;=')
x=$(echo|awk '{srand();printf "%i\n",rand()*'$x'}')
x=$(sed 's/ *//;/[;#]/d;/^$/d' $DOTLIST|sed -n "$x"p)
}
if
test $# -gt 0
then
case $1 in -h|-?|--help)
exec echo usage: ${0##*/} [domainlist]
esac
test -f $1||exit
fi
streamtcp -ansf $x $(sed 's/$/ a in/' ${1-/dev/stdin}) ||
echo svr $x
dot.lst is a list of DoT servers in format ip@portcomments may begin with '#' or ';'
# working
5.5.5.5@853
# not working
;6.6.6.6@443
example usage: dot < domains.txt > data
yy101 4 < data|sqlite3 map-ip.db
1vuio0pswjnm7•2mo ago
Unclear how "resolvers" is defined
It is doubtful to me there are 1.3M "resolvers" on the open internet as I understand the meaning of that term. But without providing the methodology or raw data it's impossible to verify the authors' conclusions
Perhaps some of these "resolvers" are actually "forwarders" that forward queries to an "upstream" resolver (and possibly manipulate responsees)
"The target name field (e.g., one.one.one.one) contains the domains of designated endpoints, indicating the providers behind these services."
Perhaps "providers" refers to the upstream resolvers