シェルでipv4アドレスを確認する方法。たとえば、*.*.1.*ですか、それとも*.*.0.*ですか?

シェルでipv4アドレスを確認する方法。たとえば、*.*.1.*ですか、それとも*.*.0.*ですか?

したがって、ここではifconfigファイルからインポートしようとしますが、単純なifconfigコマンドで同じエラーが発生します。

!#/bin/sh
if [/home/pi/ifconfig | grep -Eo ‘inet (addr:)?([0-9]*\.){3}[0-9]*’ | grep -Eo ‘([0-9]*\.){3}[0-9]*’ | grep -v ‘127.0.0.1’ = *.*.1.*]
then
echo “good1”
else
echo “notGood2”
fi

エラーが発生しました。

test: 2: test: [/home/pi/ifconfig: not found
grep: =: No such file or directory
grep: *.*.1.*]: No such file or directory
notGood2

ベストアンサー1

これを使用して、ip addrホスト上のすべてのインターフェイスとサブネットのIPアドレスを表示できます。

$ ip -f inet addr show | awk '$1 == "inet" { print $2 }'
127.0.0.1/8
192.168.0.2/24

サブネットに興味がない場合は削除できます。

$ ip -f inet addr show | awk '$1 == "inet" { print $2 }' | cut -d/ -f1
127.0.0.1
192.168.0.2

説明によると、何らかの理由でIPアドレスの3番目のオクテットが何であるかを確認したい場合は簡単です。

# given this:
$ ip -f inet addr show | awk '$1 == "inet" { print $2 }'
127.0.0.1/8
192.168.25.2/24
# we can do this:
$ ip -f inet addr show | awk '$1 == "inet" { print $2 }' | cut -d. -f3
0
25

おすすめ記事