ネットワークアドレス計算方法を書いていてわれながら効率悪すぎるだろうと思って検索したら、
簡単な計算法が見つかった。
http://www.infraexpert.com/study/ip7.html
ネットワークのことについて調べるとたいてい行き着くサイトである。
サブネットマスク終端がオクテットの途中にある場合、
サブネットマスクを10進数値にして、255でない部分は 256-マスクのオクテット値を計算すると、
そのマスクで分割されるアドレスの最小値が計算できる、というのだ。
172.16.64.110/26 であれば、
/26のマスクは 255.255.255.192
256-192 = 64
/26のサブネットは 64の倍数
110が含まれる最小の64の倍数は64
なるほど。
でも、これだと/29とかで後ろのほうにあるやつが面倒じゃないかな?
172.16.64.221/29 でやってみる。
/29のマスクは 255.255.255.248
256 - 248 = 8
221 / 8 = 27 余り 5
27 * 8 = 216
だから、 172.16.64.216/29 か。
たいしたことないな。2進数に変換するのにくらべれば。