home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / base / root.15 / usr / lib / hpnp / cfg / getaccesslist / getaccesslist~
Text File  |  1998-08-19  |  4KB  |  155 lines

  1. #!/bin/ksh
  2. #ident    "@(#)getaccesslist    1.2"
  3. #        copyright    "%c%"
  4. #
  5. # (c)Copyright Hewlett-Packard Company 1991.  All Rights Reserved.
  6. # (c)Copyright 1983 Regents of the University of California
  7. # (c)Copyright 1988, 1989 by Carnegie Mellon University
  8. #                          RESTRICTED RIGHTS LEGEND
  9. # Use, duplication, or disclosure by the U.S. Government is subject to
  10. # restrictions as set forth in sub-paragraph (c)(1)(ii) of the Rights in
  11. # Technical Data and Computer Software clause in DFARS 252.227-7013.
  12. #
  13. #                          Hewlett-Packard Company
  14. #                          3000 Hanover Street
  15. #                          Palo Alto, CA 94304 U.S.A.
  16.  
  17. while [ 0 ] 
  18. do
  19.     WASADDR=0
  20.         echo  ""
  21.       echo "Enter access list network number, host name or"  
  22.       echo "IP address (optional): $NL"  
  23.     read -r ALLOWLIST
  24.     if [ -z "$ALLOWLIST" ]
  25.     then
  26.       echo ""
  27.       echo "No access list entry created."
  28.       exit 2
  29.     fi
  30.     if [ "$ALLOWLIST" = "q" ]
  31.     then    
  32.       exit 1
  33.     fi
  34.     if [ "$ALLOWLIST" = "?" ]
  35.     then
  36.       echo ""
  37.           echo "Enter a network number (example: 15.0.0.0), a subnet number"
  38.       echo "(example: 15.1.1.0), a host name, or a host IP address"
  39.           echo "(example: 15.1.1.1)."
  40.       echo ""
  41.           echo "If you press <return> without providing a value, you will be"
  42.       echo "prompted with \"Do you want to add another access list entry?\""
  43.       echo ""
  44.       $QUITHELP
  45.       continue
  46.     fi
  47.     LOOKUPALLOWLIST="`gethostaddr $ALLOWLIST`"
  48.         WASADDR=$?
  49.         if [ $WASADDR -eq 1 ]
  50.         then
  51.       echo $LOOKUPALLOWLIST | \
  52.             egrep '^[0-9]+\.[0-9]+.[0-9]+.[0-9]+$' >/dev/null
  53.           if [ $? -eq 1 ]
  54.           then
  55.             echo ""
  56.             echo "$ALLOWLIST is not a valid address."
  57.         continue
  58.       fi
  59.         fi
  60.     if [ -z "$LOOKUPALLOWLIST" ]
  61.     then
  62.       echo ""
  63.       echo "$ALLOWLIST: unknown host"
  64.     else
  65.       onlyoneaddr "$ALLOWLIST" "$LOOKUPALLOWLIST"
  66.       RETCODE=$?
  67.       ALLOWLIST="`cat -- $TMP/ONEADDR`"
  68.       rm -f -- "$TMP/ONEADDR"
  69.       if [ $RETCODE -eq 1 ]
  70.       then
  71.         exit 1
  72.       fi
  73.       if [ -z "$ALLOWLIST" ]
  74.       then
  75.         echo ""
  76.         echo "No access list entry created."
  77.       else
  78.         break
  79.       fi
  80.         fi
  81. done
  82.  
  83. NETNUM="$ALLOWLIST"
  84. ADDRMASK=""
  85.  
  86. #
  87. # If address does not end in .0, assume it is a host.
  88. #
  89. VAL="`echo $NETNUM | awk -F. '{print $4 }`"
  90. DEFADDRMASK=""
  91. if [ "$VAL" != "0" ]
  92. then
  93.    DEFADDRMASK="255.255.255.255"
  94. fi
  95.  
  96. if [ $WASADDR -eq 1 ]
  97. then
  98.   while [ 0 ] 
  99.   do
  100.         echo  ""
  101.     if [ -z "$DEFADDRMASK" ]
  102.         then
  103.           echo "Enter access list address mask: $NL"  
  104.         read -r ADDRMASK
  105.     else
  106.           echo "Enter access list address mask (default=$DEFADDRMASK): $NL"  
  107.         read -r ADDRMASK
  108.       if [ -z "$ADDRMASK" ]
  109.       then
  110.         ADDRMASK=$DEFADDRMASK
  111.       fi
  112.         fi
  113.     if [ -z "$ADDRMASK" ]
  114.     then
  115.       continue
  116.     fi
  117.       if [ "$ADDRMASK" = "q" ]
  118.       then    
  119.           exit 1
  120.       fi
  121.       if [ "$ADDRMASK" = "?" ]
  122.       then
  123.         echo ""
  124.       echo "The address mask is a mask of bits used in the access list check."
  125.       echo "For a network number, the mask is the network mask or subnet mask"
  126.           echo "given in dot notation.  An example is 255.0.0.0.  For a host, the"
  127.       echo "address mask is 255.255.255.255.  The address mask 0.0.0.0 is"
  128.       echo "not allowed."
  129.       echo ""
  130.       $QUITHELP
  131.         continue
  132.       fi
  133.       echo $ADDRMASK | egrep '^[0-9]+\.[0-9]+.[0-9]+.[0-9]+$' > /dev/null
  134.       if [ $? -ne 0  -o "$ADDRMASK" = "0.0.0.0" ]
  135.       then
  136.                 echo ""
  137.           echo "Invalid address mask.  An example of a valid address mask"
  138.                 echo "is 255.0.0.0.  For a host, the address mask would be"
  139.                 echo "255.255.255.255.  The address mask 0.0.0.0 is not allowed."
  140.       else
  141.           break
  142.       fi
  143.   done
  144. fi
  145.  
  146. if [ "$ADDRMASK" = "255.255.255.255" ]
  147. then
  148.   echo $NETNUM > "$TMP/ALLOWLIST"
  149. else
  150.   echo $NETNUM $ADDRMASK > "$TMP/ALLOWLIST"
  151. fi
  152.  
  153. exit 0
  154.