GNU/Linux >> Tutoriels Linux >  >> Linux

Obtenir un masque de sous-réseau sous Linux à l'aide de bash

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}'

Linux
  1. Comment obtenir le nombre de CPU sous Linux en utilisant C ?

  2. Obtenir mtime d'un fichier spécifique en utilisant Bash ?

  3. Obtenez des deltas de souris en utilisant Python ! (sous Linux)

  4. Rediriger toutes les sorties vers un fichier à l'aide de Bash sous Linux ?

  5. Obtenir des adresses IPv6 sous Linux en utilisant ioctl

Obtenez podman opérationnel sur Windows en utilisant Linux

Déboguer Linux avec ProcDump

Commande d'historique sous Linux (historique de bash)

Utilisation de la commande Linux Dirname dans les scripts Bash

Obtenez la date d'hier dans bash sous Linux, DST-safe

Comment obtenir un masque de réseau à partir de bash ?