• ベストアンサー

BシェルでのIPアドレス範囲判定

こんにちは。 Bシェルにて、IPアドレスの範囲におさまっているかどうかの 判定を行う処理になりますが、このような関数など、ご存知の方が いればお願いします。 OSは、HP-UXになります。 例:192.168.1.0~192.168.1.255のIP範囲として、 192.168.1.11が、IP範囲かどうかを調べる処理です。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

bashなら多少は楽ですが。 shだと、 OIFS="$IFS" IFS=. set X $IP IFS="$OIFS" shift ANS=OK case $# in 4) ;; *) ANS=NG ;; esac case "$1.$2.$3" in 192.168.1) ;; *) ANS=NG ;; esac case "$4" in [0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]) ;; *) ANS=NG ;; esac のようにセパレータIFSを使って分解し、caseをつかったパターンマッチでやるしかないです。

yano-kouichi
質問者

補足

返事遅くなってすいません。 成功しました。 ありがとうございました。

その他の回答 (1)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

純粋にシェルスクリプトの構文の範疇で、外部ツールは一切使用しない。 という前提でしょうか? また、素のBourne Shellで、bashとかではないのですね?

yano-kouichi
質問者

補足

そのとおりです。 ツールは使わず、シェルのみになります。

関連するQ&A

専門家に質問してみよう