File: drbl-get-network

package info (click to toggle)
drbl 5.8.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 6,996 kB
  • sloc: sh: 43,555; perl: 8,820; xml: 867; makefile: 135
file content (44 lines) | stat: -rwxr-xr-x 1,368 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/bin/bash
# Author: Steven Shiau <steven _at_ clonezilla org>
# License: GPL
# Description: Get the network address from IP address and netmask
# Notes: "ipcalc" program is totally different in Debian and RedHat-like distribution.
# NOTE! We do NOT use this program in drblpush anymore. Just use the perl script ipcalc which is collected in package drbl.

# Load DRBL setting and functions
DRBL_SCRIPT_PATH="${DRBL_SCRIPT_PATH:-/usr/share/drbl}"

. $DRBL_SCRIPT_PATH/sbin/drbl-conf-functions

export LC_ALL=C
# Append a default search path.
PATH="$PATH:/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin"
export PATH

Usage() {
  echo "Get the network address from IP address and netmask" 
  echo "Usage:"
  echo "$(basename $0) IPADDR NETMASK"
  echo "Ex: $(basename $0) 192.168.10.213 255.255.255.240"
}

# Parse command-line options
while [ $# -gt 0 ]; do
  case "$1" in
    -*)     echo "${0}: ${1}: invalid option" >&2
            Usage >& 2
            exit 2 ;;
    *)      break ;;
  esac
done

ipaddr=$1
netmask=$2
[ -z "$ipaddr" ] && exit 0
[ -z "$netmask" ] && exit 0

# The output of ipcalc without "=", it must be in Debian... we use ipsc.
# Debian's ipcalc output like this
# Network:   192.168.103.208/28   11000000.10101000.01100111.1101 0000
network="$(drbl-ipcalc $ipaddr $netmask | awk -F" " '/Network:/ {print $2}' | sed -e "s/\/.*//g")"
echo $network