module ipcalc: ajout de ipcalc_network()
This commit is contained in:
parent
fbc1a5cc9b
commit
6366256c52
|
@ -83,6 +83,32 @@ function ipcalc_netmask() {
|
|||
return 0
|
||||
}
|
||||
|
||||
function ipcalc_network() {
|
||||
# Calculer l'adresse de réseau correspondant à l'adresse ip $1. Le masque
|
||||
# de sous-réseau peut-être indiqué dans l'adresse ip avec le suffixe /n ou
|
||||
# /x.x.x.x ou donné dans l'argument $2. Seuls les suffixes 0, 8, 16, 24, 32
|
||||
# sont supportés.
|
||||
# Retourner 1 si un erreur s'est produite, par exemple si l'adresse ou le
|
||||
# suffixe sont invalides ou non supportés.
|
||||
[ -n "$1" ] || return
|
||||
local ip mask
|
||||
|
||||
ipcalc_splitipmask "$1" ip mask
|
||||
[ -n "$mask" ] || mask="$2"
|
||||
[ -n "$mask" ] || mask=24
|
||||
|
||||
ip="$(ipcalc_checkip "$ip")" || return
|
||||
mask="$(ipcalc_checkmask "$mask")" || return
|
||||
|
||||
case "$mask" in
|
||||
0) echo "0.0.0.0";;
|
||||
8) ip="${ip%.*.*.*}"; echo "$ip.0.0.0";;
|
||||
16) ip="${ip%.*.*}"; echo "$ip.0.0";;
|
||||
24) ip="${ip%.*}"; echo "$ip.0";;
|
||||
32) echo "$ip";;
|
||||
esac
|
||||
}
|
||||
|
||||
function ipcalc_broadcast() {
|
||||
# Calculer l'adresse de broadcast correspondant à l'adresse ip $1. Le masque
|
||||
# de sous-réseau peut-être indiqué dans l'adresse ip avec le suffixe /n ou
|
||||
|
|
Loading…
Reference in New Issue