Une façon simple de le faire pour moi était :
IP=$(ifconfig eth0 | grep -w inet | cut -d" " -f10) # device IP, e.g. 11.1.1.43
IP_RANGE=$(echo $IP | cut -d"." -f1-3).0/24 # subnet 11.1.1.0/24
Remplacez bien sûr eth0
avec la bonne interface affichée par ifconfig
.
Une meilleure approche serait :
ifconfig eth0 | awk '/netmask/{split($4,a,":"); print a[1]}'
Vous pouvez remplacer eth0 par n'importe quelle autre interface de votre choix
il existe plusieurs façons d'y parvenir :
d'abord :pour imprimer le masque au format 255.255.255.0, vous pouvez utiliser ceci :
/sbin/ifconfig wlan0 | awk '/Mask:/{ print $4;} '
deuxième :nous pouvons utiliser la commande ip pour obtenir le masque au format 192.168.1.1/24
ip -o -f inet addr show | awk '/scope global/ {print $4}'