192.168.1.0/24のようにプレフィックス24で表示されているIPアドレスの範囲をプレフィックス 26で表示してみる。
Rubyで実行するには、ipaddressライブラリをgemでinstallして使う。
$ gem install ipaddress ipaddress (0.8.3) $ ruby -r'ipaddress' -e'IPAddress("192.168.1.0/24").subnet(26).each{|i| puts i.to_string}' 192.168.1.0/26 192.168.1.64/26 192.168.1.128/26 192.168.1.192/26
24を26にしたので、1行で表せていたIPアドレス範囲が4行になった。25にしていれば2行になる。
python3.3以降が入っていれば、pythonの標準ライブラリだけで実行できる。
import ipaddress for n in ipaddress.ip_network("192.168.1.0/24").subnets(new_prefix=26): print(n)
Rubyの時はshellから実行したので、pythonでもshellから実行すると以下のとおり。
# pattern1 $ python3 -c'import ipaddress;[print(n) for n in ipaddress.ip_network("192.168.1.0/24").subnets(new_prefix=26)]' # pattern2 $ python3 -c' import ipaddress for n in ipaddress.ip_network("192.168.1.0/24").subnets(new_prefix=26): print(n) ' # pattern3 $ cat <<EOS | python3 /dev/stdin import ipaddress for n in ipaddress.ip_network("192.168.1.0/24").subnets(new_prefix=26): print(n) EOS
Copyright © 2017 システム開発メモ All Rights Reserved.