🐧
Pythonでip範囲をCIDR表記に変換
ip範囲をCIDR表記に変換したい
- 「このip範囲でアクセス許可設定してくださいx.x.x.x-y.y.y.y」って依頼されることありますよね?私も人に依頼するときは計算したくないのでそうやって依頼します
- でも実際システムに設定する時はx.x.x.x/30 みたいにサブネットマスクして書くじゃないですか?
- ググればブラウザで動く計算ツールが出てきますけど、社内システムのipアドレスだったりすると、信頼して良いサイトか判断するのも面倒なので一応ローカルで計算したいなーってなりますよね?
Python にやらせよう
- 嬉しいことにpython の標準ライブラリでipアドレスをごちゃごちゃいじれるので、やりたいことは関数一発で実現できます
- というかドキュメントに載ってます
import ipaddress
[ipaddr for ipaddr in ipaddress.summarize_address_range(
ipaddress.IPv4Address('192.0.2.0'),
ipaddress.IPv4Address('192.0.2.130'))]
結果
[IPv4Network('192.0.2.0/25'), IPv4Network('192.0.2.128/31'), IPv4Network('192.0.2.130/32')]
Discussion