2018年7月1日日曜日

Python3 で CIDR から使用可能な IP の範囲を取得する

概要

netaddr というパッケージを使うことでできるようになります
今回は使い方を紹介します

環境

  • macOS 10.13.5
  • Python 3.6.5
  • netaddr 0.7.9

インストール

  • pip3 install netaddr

CIDR から IP の配列を取得

from netaddr import IPNetwork

for ip in IPNetwork('192.168.0.0/16'):
    print(ip)

半分より上位の IP を使う

from netaddr import IPNetwork

ips = IPNetwork('192.168.0.0/16')
half = ips[:int(len(ips)/2)]
for ip in half:
    print(ip)

半分から上位の IP の 11 個目を確認する

from netaddr import IPNetwork

ips = IPNetwork('192.168.0.0/16')
half = ips[:int(len(ips)/2)]
print(list(half)[10])

slice で返ってくる型が generator になっているので再度 list に変換してあげます

最後に

netaddr を Python3 で使ってみました

0 件のコメント:

コメントを投稿