• 締切済み

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)を出力するようにしたいと思っています。 よろしくお願い致します。

みんなの回答

回答No.4

シェルスクリプトではありませんが、PHPが使えるのでしたら、以下のようなモノがありましたよ。 http://okwave.jp/qa/q1186520.html

  • jjk65536
  • ベストアンサー率59% (66/111)
回答No.3

ipcalcの実行結果で判断するのではだめですかね

参考URL:
http://d.hatena.ne.jp/ktat/20090521/1242835927
  • notnot
  • ベストアンサー率47% (4901/10362)
回答No.2

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)
回答No.1

努力と根性で正規表現で書いて grep とか.

関連するQ&A