- 締切済み
sh スクリプト ipアドレス形式チェック方法
sh スクリプト check.sh で 引数がIPアドレス/サブネットマスクかどうかをチェックするスクリプトを作成したいのですが、 どのようにすればよいかご教授お願い致します。 期待値としては、check.sh 192.168.5.5/24 のように 引数が正しい(IPアドレス形式)/(サブネットマスク1~32)であれば 実行すれば0(OK)を出力し check.sh 192.168.5.555/24のようにあやまった形式であれば 1(NG)を出力するようにしたいと思っています。 よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- SherlockHolmes2
- ベストアンサー率40% (175/429)
シェルスクリプトではありませんが、PHPが使えるのでしたら、以下のようなモノがありましたよ。 http://okwave.jp/qa/q1186520.html
- jjk65536
- ベストアンサー率59% (66/111)
ipcalcの実行結果で判断するのではだめですかね
- notnot
- ベストアンサー率47% (4901/10362)
A=`expr "$1" : '\([0-9]\+\)\.[0-9]\+\.[0-9]\+\.[0-9]\+/[0-9]\+'` B=`expr "$1" : '[0-9]\+\.\([0-9]\+\)\.[0-9]\+\.[0-9]\+/[0-9]\+'` C=`expr "$1" : '[0-9]\+\.[0-9]\+\.\([0-9]\+\)\.[0-9]\+/[0-9]\+'` D=`expr "$1" : '[0-9]\+\.[0-9]\+\.[0-9]\+\.\([0-9]\+\)/[0-9]\+'` E=`expr "$1" : '[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+/\([0-9]\+\)'` if test "$A" -a "$B" -a "$C" -a "$D" -a "$E" && test "$A" -ge 1 -a "$A" -le 255 -a \ "$B" -ge 1 -a "$B" -le 255 -a \ "$C" -ge 1 -a "$C" -le 255 -a \ "$D" -ge 1 -a "$D" -le 255 -a \ "$E" -ge 1 -a "$E" -le 32 then echo 0 else echo 1 fi
- Tacosan
- ベストアンサー率23% (3656/15482)
努力と根性で正規表現で書いて grep とか.