web-dev-qa-db-ja.com

Linuxでbashを使用してサブネットマスクを取得する

私はそのスクリプトで私のマシンのIPアドレスを取得するためにbashを使用しています:

_MyGW="$( ip route get 8.8.8.8 | awk 'N=3 {print $N}' )"

そして今、私はこのタイプのサブネットマスクを取得しようとしています:

192.168.1.0/24 

しかし、どうすればよいのかわかりません。

11
ValeriRangelov

これを実現する方法はいくつかあります。

まず、マスクを255.255.255.0の形式で出力するには、次のように使用できます。

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

2番目:ipコマンドを使用して、マスクを192.168.1.1/24の形式で取得できます

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

より良いアプローチは:

 ifconfig eth0 | awk '/Mask:/{split($4,a,":"); print a[2]}'

Eth0を他の任意のインターフェースに置き換えることができます

0
RoyalBigMack