GNU/Linux >> Tutoriels Linux >  >> Linux

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

Je dois préciser que le code ici fonctionne pour Linux (notez les commentaires et postez sur d'autres Unix). OP a demandé une solution Linux, mais il serait bon de changer la question en "comment obtenir un masque de réseau" en général, et que la réponse combine la meilleure façon pour plus de saveurs Unix.

#!/bin/sh
ifconfig "$1" | sed -rn '2s/ .*:(.*)$/\1/p'

./script eth0

À propos d'ifconfig sous Linux

Avec d'autres commandes réseau traditionnelles comme netstat, arp, rarp et route, ifconfig fait partie des net-tools forfait. Net-tools n'a pas été activement développé depuis très longtemps et il y a des efforts pour le déprécier en faveur du plus récent iproute2 forfait. Par souci de concision, si vous souhaitez plus de détails sur cette transition fondamentale, voici quelques liens pertinents :

Exemple de cas :Debian Linux

Exemple de cas :Arch Linux

Page de manuel pour net-tools ifconfig (voir la section BOGUES)

Analyse et comparaison des frameworks du point de vue des utilisateurs


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

?


Je me demande si vous ne voulez vraiment que le masque. Peut-être que vous voulez vraiment le réseau (ou IP) avec masque, à utiliser dans les fichiers de configuration, avec nmap , ou quoi que ce soit.

Dans ce cas, sous Linux, vous pouvez également analyser la sortie du ip ... commande.

Pour lister toutes les interfaces avec leur adresse et leur masque en notation CIDR :

ip -o -f inet addr show | awk '/scope global/ {print $2, $4}'

Ou pour le restreindre à l'interface par défaut :

default_if=$(ip route list | awk '/^default/ {print $5}')
ip -o -f inet addr show $default_if | awk '{print $4}'

ce qui me donne "192.168.1.61/24" sur ma machine.


Linux
  1. Comment obtenir la taille du répertoire sous Linux

  2. Obtenir un entier plafond à partir d'un nombre sous Linux (BASH)

  3. Comment obtenir le nom d'hôte de l'IP (Linux) ?

  4. comment obtenir des éléments de la liste en bash?

  5. Linux/bash :Comment obtenir l'adresse IPv6 de l'interface ?

Comment personnaliser l'invite Bash sous Linux

Comment obtenir la taille d'un répertoire sous Linux

Comment trouver/obtenir votre adresse IP sous Linux

Comment obtenir des nouvelles instantanément à partir de la ligne de commande sous Linux

Comment obtenir le nom de fichier à partir du chemin complet sous Linux

Comment obtenir votre adresse IP sous Linux