シェルスクリプトでネットワークアドレスを計算する

SPECIAL


ネットワークアドレスやブロードキャストを計算する

Linux シェルスクリプトで、IP アドレスとサブネット(マスクビット)情報から、そのネットワークに該当するネットワークアドレスとブロードキャストアドレスとを計算して取得するスクリプトを作成してみました。


    

使い方としては、たとえば IP アドレス "192.168.1.130" と、サブネットマスクのマスクビット "28" を、上記で定義した "get_network" 関数の引数として、次のように渡します。

NETINFO=(`get_network "192.168.1.130" "28"`)

このようにすることで、その IP アドレスが所属するネットワークアドレスなどの情報が、次のように配列として取得できるようになります。

${NETINFO[0]} ネットワークアドレス
${NETINFO[1]} ブロードキャストアドレス
${NETINFO[2]} ネットマスク

これを用いることで、シェルスクリプトでネットワーク関連のちょっとした自動設定プログラムなどを作成することもしやすくなると思います。