web-dev-qa-db-fra.com

Obtenir un masque de sous-réseau sous Linux en utilisant bash

J'utilise bash pour obtenir l'adresse IP de ma machine avec ce script:

_MyGW="$( ip route get 8.8.8.8 | awk 'N=3 {print $N}' )"

Et maintenant, j'essaie d'obtenir le masque de sous-réseau de ce type:

192.168.1.0/24 

Mais je ne sais pas comment je peux faire ça.

7
ValeriRangelov

il y a deux façons d'y parvenir:

premièrement: pour imprimer le masque au format 255.255.255.0, vous pouvez utiliser ceci:

/sbin/ifconfig wlan0 | awk '/Mask:/{ print $4;} '

deuxième: on peut 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}'
18
vishal

Une meilleure approche sera:

 ifconfig eth0 | awk '/Mask:/{split($4,a,":"); print a[2]}'

Vous pouvez remplacer l'eth0 par n'importe quelle autre interface de votre choix

0
RoyalBigMack