GNU/Linux >> Znalost Linux >  >> Linux

Jak získat masku sítě z bash?

Měl bych objasnit, že kód zde funguje pro Linux (všimněte si komentářů a příspěvků o jiných Unicích). OP požádal o řešení pro Linux, ale bylo by dobré změnit otázku obecně na „jak získat masku sítě“ a nechat odpověď zkombinovat nejlepší způsob pro více variant Unixu.

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

./script eth0

O ifconfig v Linuxu

Spolu s dalšími tradičními síťovými příkazy, jako jsou netstat, arp, rarp a route, je ifconfig součástí net-tools balík. Net-tools nebyly aktivně vyvíjeny opravdu dlouhou dobu a existují snahy o jeho ukončení ve prospěch novějšího iproute2 balík. V zájmu stručnosti, pokud chcete více podrobností o tomto zásadním přechodu, zde jsou některé relevantní odkazy:

Příklad:Debian Linux

Příklad:Arch Linux

Manuální stránka pro net-tools ifconfig (viz sekce CHYBY)

Analýza a srovnání rámců z pohledu uživatelů


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

?


Zajímalo by mě, jestli chceš opravdu jen masku. Možná opravdu chcete síť (nebo IP) s maskou, kterou chcete použít v konfiguračních souborech, s nmap nebo cokoliv jiného.

V takovém případě na Linuxu můžete také analyzovat výstup ip ... příkaz.

Seznam všech rozhraní s jejich adresou a maskou v notaci CIDR:

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

Nebo jej omezit na výchozí rozhraní:

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

což mi na mém počítači zobrazí „192.168.1.61/24“.


Linux
  1. Linux – Jak spustit bootloader z Linuxu?

  2. Získejte stropní celé číslo z čísla v linuxu (BASH)

  3. Jak mohu získat jedinečné hodnoty z pole v Bash?

  1. Jak získat název hostitele z IP (Linux)?

  2. Linux/bash:Jak získat IPv6 adresu rozhraní?

  3. Jak získat ldapsearch na Scientific Linux?

  1. Jak zkrátit Bash Prompt v Linuxu?

  2. Jak získat velikost adresáře v Linuxu

  3. jak získat prvky ze seznamu v bash?