IP範囲を見つけるにはgrepを使用しますか?

IP範囲を見つけるにはgrepを使用しますか?

ローカルIPアドレスが10.0.0.159のRHEL 7システムでは、次のコマンドはIPを印刷します10.0.0.159

$ echo "$(ifconfig eth0 | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | \
   grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1')""(rw,sync)" 

「10.0.0.0/8」を印刷するには、コマンドを何に変更する必要がありますか?

ベストアンサー1

メモ: ifconfig廃止予定の cmd です。 cmdを使用する必要があります。 iproute2パッケージにあります。以下は、ip交換ツールを使用して目的の操作を実行する方法を示しています。


ifconfigこれを行うのではなく、コマンドを使用することをお勧めしますip

IPネットワークセグメント

このフォームはCIDR表記でIPアドレスを表示します。

$ ip addr list eth0 | awk '/inet.*brd/ {print $2}'
10.0.2.15/24

-or-

$ ip a l eth0 | awk '/inet.*brd/ {print $2}'
10.0.2.15/24

ネットワークセグメント

このフォームはCIDR表記でネットワークアドレスを表示します。

$ ip route show | awk '/eth0.*scope/ {print $1}'
10.0.2.0/24

IP計算

また、このipcalcコマンドを使用して上記のアドレスを操作して他の形式を計算することもできます。たとえば、

$ ipcalc -n $(ip a l eth0 | awk '/inet.*brd/ {print $2}')
NETWORK=10.0.2.0

$ ipcalc -p $(ip a l eth0 | awk '/inet.*brd/ {print $2}')
PREFIX=24

これを使用すると、複雑すぎるテキストを解析するためにipcalc多くのことを行わなくても、必要なバリエーションをより簡単に整理できますsedawk

おすすめ記事