漂亮的打印版ipy的ipsets
prettyip的Python项目详细描述
漂亮的印刷品IPy的ipset以人类可读的方式。
兼容性
无论IPy在哪里运行,cpython-2.6到3.4也是如此。
用法
明确:
from IPy import IPSet, IP import prettyip my_ipset = IPSet([IP('10.0.0.0/8')]) - IPSet([IP('10.0.1.2')]) print prettyip.pretty_ipset(my_ipset)
或者,猴子补丁IPy:
import prettyip prettyip.patch_ipy() my_ipset = IPSet([IP('10.0.0.0/8')]) - IPSet([IP('10.0.1.2')]) print my_ipset
结果
简单IP:
>>> prettyip.pretty_ipset(IPSet([IP('10.0.0.0/8')])) '10.0.0.0/8'
范围:
>>> IPSet([IP('10.120.13.11'), IP('10.120.13.12/30'), IP('10.120.13.16')]) IPSet([IP('10.120.13.11'), IP('10.120.13.12/30'), IP('10.120.13.16')]) >>> prettyip.pretty_ipset(_) '10.120.13.1{1-6}'
缺少较小块的大网锁:
>>> IPSet([IP('1.0.0.0/8')]) - IPSet([IP('1.0.1.0/24')]) - IPSet([IP('1.0.9.0/24')]) IPSet([IP('1.0.0.0/24'), IP('1.0.2.0/23'), IP('1.0.4.0/22'), IP('1.0.8.0/24'), IP('1.0.10.0/23'), IP('1.0.12.0/22'), IP('1.0.16.0/20'), IP('1.0.32.0/19'), IP('1.0.64.0/18'), IP('1.0.128.0/17'), IP('1.1.0.0/16'), IP('1.2.0.0/15'), IP('1.4.0.0/14'), IP('1.8.0.0/13'), IP('1.16.0.0/12'), IP('1.32.0.0/11'), IP('1.64.0.0/10'), IP('1.128.0.0/9')]) >>> prettyip.pretty_ipset(_) '1.0.0.0/8 except 1.0.1.0/24, 1.0.9.0/24'