Bash-4.3 distribution sources and documentation
[platform/upstream/bash.git] / examples / functions / inetaddr
index 776b204..9e72613 100644 (file)
@@ -1,4 +1,23 @@
 #
+#  Chet Ramey <chet.ramey@case.edu>
+#
+#  Copyright 2002 Chester Ramey
+#
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 2, or (at your option)
+#   any later version.
+#
+#   TThis program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program; if not, write to the Free Software Foundation,
+#   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#
 # inet2hex - Internet address conversion, dotted-decimal to hex
 #
 inet2hex ()
@@ -23,6 +42,17 @@ inet2hex ()
 hex2inet ()
 {
        local x1 x2 x3 x4
+       local rev
+
+       OPTIND=1
+       while getopts "r" o
+       do
+               case "$o" in
+               r)      rev=true;;
+               *)      echo "hex2inet: usage: hex2inet [-r] [0x]XXXXXXXX" >&2 ; exit 2;;
+               esac
+       done
+       shift $(( $OPTIND - 1 ))
 
        case "$1" in
        0x*)    h=${1#??} ;;
@@ -40,5 +70,10 @@ hex2inet ()
        x3=$(( 0x${h:4:2} ))
        x4=$(( 0x${h:6:2} ))
 
-       printf "%d.%d.%d.%d\n" $x1 $x2 $x3 $x4 
+       if [ -z "$rev" ] ; then
+               printf "%d.%d.%d.%d\n" $x1 $x2 $x3 $x4 
+       else
+               printf "%d.%d.%d.%d\n" $x4 $x3 $x2 $x1 
+       fi
+       return 0
 }