module ipcalc: ajout de ipcalc_network()
This commit is contained in:
parent
fbc1a5cc9b
commit
6366256c52
|
@ -83,6 +83,32 @@ function ipcalc_netmask() {
|
||||||
return 0
|
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() {
|
function ipcalc_broadcast() {
|
||||||
# Calculer l'adresse de broadcast correspondant à l'adresse ip $1. Le masque
|
# 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
|
# de sous-réseau peut-être indiqué dans l'adresse ip avec le suffixe /n ou
|
||||||
|
|
Loading…
Reference in New Issue