私にとって簡単な方法は次のとおりです。
IP=$(ifconfig eth0 | grep -w inet | cut -d" " -f10) # device IP, e.g. 11.1.1.43
IP_RANGE=$(echo $IP | cut -d"." -f1-3).0/24 # subnet 11.1.1.0/24
もちろん eth0
を置き換えます ifconfig
で表示される適切なインターフェース .
より良いアプローチは次のとおりです:
ifconfig eth0 | awk '/netmask/{split($4,a,":"); print a[1]}'
eth0 は、必要な他のインターフェイスに置き換えることができます
これを実現するには、いくつかの方法があります:
最初に:マスクを 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}'