Bashでネットマスクを取得する方法は?

Bashでネットマスクを取得する方法は?

Linuxでネットマスクを取得したいです。次のように出力されますが、ifconfig文字列を抽出したいと思います。

答え1

ここにあるコードはLinux用であることを明確にする必要があります(他のUnicesに関するコメントと投稿を参照)。 OPはLinuxソリューションを要求しましたが、質問を「ネットマスクの入手方法」に変更し、より多くのUnixスタイルのベストプラクティスを含む答えを得ることがより良いでしょう。

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

./script eth0

Linuxのifconfigについて

netstat、arp、rarp、Routeなどの他の既存のネットワークコマンドと一緒にifconfigはネットワークツールパック。 Net-toolsは長い間積極的に開発されておらず、新しいツールを好み、もう使用しないよう努めています。IP ルート 2パック。簡単に説明すると、この基本的な変更の詳細については、次の関連リンクを参照してください。

ケース例: Debian Linux

ケース例:アーチLinux

net-tools ifconfigのマニュアルページ(BUGSセクションを参照)

ユーザーの観点からフレームワークを分析して比較します。

答え2

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

答え3

本当にマスクだけが欲しいかと思います。たぶん、あなたは設定ファイルnmapや他のものに使用されるマスクを持つネットワーク(またはIP)を本当に望むかもしれません。

この場合、Linuxはコマンドの出力を解析することもできますip ...

CIDR表記ですべてのインターフェイスとそのアドレスとマスクを一覧表示するには、次の手順に従ってください。

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

または、デフォルトインターフェイスに制限します。

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

これにより、マイコンピュータに「192.168.1.61/24」と表示されます。

答え4

/sbin/ifconfig eth0 | grep Mask | cut -d":" -f4

関連情報