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パック。簡単に説明すると、この基本的な変更の詳細については、次の関連リンクを参照してください。
答え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