summaryrefslogtreecommitdiff
path: root/usr.sbin/named/host/nslookup
diff options
context:
space:
mode:
authordm <dm@cvs.openbsd.org>1996-02-19 19:54:44 +0000
committerdm <dm@cvs.openbsd.org>1996-02-19 19:54:44 +0000
commit34dfcd3c571a64de57872aa758d1b228d7b22a02 (patch)
tree22b14dd50dff4fc41ec5c5f2ee3e20f4b7f1d141 /usr.sbin/named/host/nslookup
parentd134390523f594c4e7f1b453b8026b993a1aeebb (diff)
netbsd: bind 4.9.3
Diffstat (limited to 'usr.sbin/named/host/nslookup')
-rw-r--r--usr.sbin/named/host/nslookup280
1 files changed, 280 insertions, 0 deletions
diff --git a/usr.sbin/named/host/nslookup b/usr.sbin/named/host/nslookup
new file mode 100644
index 00000000000..71601f7057c
--- /dev/null
+++ b/usr.sbin/named/host/nslookup
@@ -0,0 +1,280 @@
+#!/bin/sh -
+#
+# @(#)nslookup e07@nikhef.nl (Eric Wassenaar) 940919
+#
+# Author: E.Wassenaar, Nikhef-H
+# Version: 19-SEP-1994
+# Revision:
+#
+# This utility emulates nslookup as a wrapper to host.
+# It performs most, but not all, functions.
+
+exec=echo
+exec=
+
+# ----------------------------------------------------------------------
+# Setup environment.
+# ----------------------------------------------------------------------
+
+# This is where the ``host'' executable lives.
+BINDIR=/usr/local/bin
+
+PATH=${BINDIR}:/bin:/usr/bin:/usr/ucb ; export PATH
+
+cmd=`basename $0`
+
+options="[-l]"
+usage="Usage: $cmd $options [server]"
+
+# ----------------------------------------------------------------------
+# Exit codes from <sysexits.h>
+# ----------------------------------------------------------------------
+
+EX_OK=0
+EX_USAGE=64
+EX_UNAVAILABLE=69
+
+# ----------------------------------------------------------------------
+# Setup defaults.
+# ----------------------------------------------------------------------
+
+name=""
+zone=""
+
+type=""
+class=""
+
+server=""
+
+debug=""
+verbose=""
+norecurse=""
+vc=""
+
+# ----------------------------------------------------------------------
+# Process arguments.
+# ----------------------------------------------------------------------
+
+for i
+do
+ if [ "X$server" != "X" ]
+ then
+ echo "$usage" 1>&2 ; exit $EX_USAGE
+ fi
+
+ case "$i" in
+ -d) exec=echo ;;
+ -l) server=`hostname` ;;
+ -*) echo "$cmd: Unknown option $i" 1>&2 ; exit $EX_USAGE ;;
+ *) server="$i" ;;
+ esac
+done
+
+# ----------------------------------------------------------------------
+# Choose between BSD or SYSV echo command.
+# ----------------------------------------------------------------------
+
+n=`echo -n`
+if [ "$n" = "-n" ]
+then
+ c='\c' ; n=''
+else
+ n='-n' ; c=''
+fi
+
+# ----------------------------------------------------------------------
+# Main loop.
+# ----------------------------------------------------------------------
+
+trap continue 2
+
+while echo $n "> $c" ; read line
+do
+ case "$line" in
+ "") continue ;;
+ *\**) continue ;;
+ *\!*) continue ;;
+ *\?*) line="help" ;;
+ esac
+
+ set - $line
+ command="$1"
+ case "$command" in
+
+ help)
+ cat <<!
+ exit | quit - exit from the program
+ help | ? - print this help message
+ set | set all - show all current settings
+ set [no]debug - increase debug output level
+ set [no]verbose - increase verbose output level
+ set [no]recurse - request recursive nameserver queries
+ set [no]vc - use virtual circuit for queries
+ set type=TYPE - query about the given resource record TYPE
+ set class=CLASS - query about the given resource record CLASS
+ server SERVER - contact the explicit server with name SERVER
+ server - show the name of the current explicit SERVER
+ NAME - query for NAME using all current settings
+ NAME SERVER - query for NAME at the given SERVER
+ ls ZONE - generate listing of the given name ZONE
+ ls - generate listing of the last given ZONE
+ ls ZONE [>]FILE - copy resource record output also to FILE
+!
+ ;;
+
+ exit|quit)
+ break
+ ;;
+
+ set)
+ option="$2"
+ case "$option" in
+
+ ""|all)
+ echo "name=$name"
+ echo "zone=$zone"
+ echo "server=$server"
+ echo "set type=$type"
+ echo "set class=$class"
+ echo "set debug=$debug"
+ echo "set verbose=$verbose"
+ echo "set norecurse=$norecurse"
+ echo "set vc=$vc"
+ ;;
+
+ debug|debu|deb|de|d)
+ debug="-d $debug"
+ ;;
+
+ nodebug|nodebu|nodeb|node|nod)
+ debug=""
+ ;;
+
+ d2)
+ debug="-d -d"
+ verbose="-v -v"
+ ;;
+
+ nod2)
+ debug=""
+ verbose=""
+ ;;
+
+ verbose|verbos|verbo|verb|ver|ve|v)
+ verbose="-v $verbose"
+ ;;
+
+ noverbose|noverbos|noverbo|noverb|nover|nove|nov)
+ verbose=""
+ ;;
+
+ recurse|recurs|recur|recu|rec|re|r)
+ norecurse=""
+ ;;
+
+ norecurse|norecurs|norecur|norecu|norec|nore|nor)
+ norecurse="-r"
+ ;;
+
+ vc)
+ vc="-u"
+ ;;
+
+ novc)
+ vc=""
+ ;;
+
+ querytype=*|querytyp=*|queryty=*|queryt=*|\
+ query=*|quer=*|que=*|qu=*|q=*|\
+ type=*|typ=*|ty=*|t=*)
+ type=`echo $option | sed 's/.*=//'`
+ if [ "X$type" != "X" ]
+ then
+ type="-t $type"
+ fi
+ ;;
+
+ querytype|querytyp|queryty|queryt|\
+ query|quer|que|qu|q|\
+ type|typ|ty|t)
+ type=""
+ ;;
+
+ class=*|clas=*|cla=*|cl=*|c=*)
+ class=`echo $option | sed 's/.*=//'`
+ if [ "X$class" != "X" ]
+ then
+ class="-c $class"
+ fi
+ ;;
+
+ class*|clas*|cla*|cl*|c*)
+ class=""
+ ;;
+
+ *)
+ echo "Unknown option $option"
+ ;;
+
+ esac
+ ;;
+
+ server)
+ nserver="$2"
+ if [ "X$nserver" = "X" ]
+ then
+ if [ "X$server" = "X" ]
+ then
+ echo "No server defined"
+ else
+ echo "server=$server"
+ fi
+ else
+ server="$nserver"
+ fi
+ ;;
+
+ ls)
+ nzone="$2"
+ if [ "X$nzone" = "X" ]
+ then
+ if [ "X$zone" = "X" ]
+ then
+ echo "No zone defined"
+ continue
+ fi
+ else
+ zone="$nzone"
+ fi
+
+ file=`echo "$3$4" | sed 's/>*//'`
+ if [ "X$file" != "X" ]
+ then
+ file="-f $file"
+ fi
+
+ options="$debug $verbose $norecurse $vc $file"
+ $exec host $options $type $class -l $zone $nserver
+ ;;
+
+ [a-zA-Z0-9]*)
+ name="$1"
+
+ nserver="$2"
+ if [ "X$nserver" = "X" ]
+ then
+ nserver="$server"
+ fi
+
+ options="$debug $verbose $norecurse $vc"
+ $exec host $options $type $class $name $nserver
+ ;;
+
+ *)
+ echo "Unknown command $command"
+ ;;
+
+ esac
+done
+
+exit $EX_OK