network_dict创建基于网络子网的字典,该字典返回给定IP的最特定子网。

network_dict的Python项目详细描述


摘要

network_dict创建基于网络子网的字典,该字典返回给定IP的最特定子网。它将与ipv4和ipv6同等工作。

这里有一些简单的铃声和口哨声,使图书馆在不同的情况下有用。

这是一个例子胜于雄辩的例子…

简单示例

fromnetwork_dictimportNetworkDictnetworks={'0.0.0.0/0':'Everything','10.0.0.0/8':'Office','10.1.0.0/16':'Region 1','10.1.1.0/255.255.255.0':'City 1'# Can take multiple netmasks}ns=NetworkDict(networks)>>>nd['10.1.1.1']'City 1'>>>nd.firstHit=False# Return all matching values in a list# Results are in order, most to least specific>>>nd['10.1.1.1']['City 1','Region 1','Office','Everything']>>>nd.format=both# return both the subnet and value in a tuple>>>nd['10.1.1.1'][('10.1.1.0/24','City 1'),('10.1.0.0/16','Region 1'),('10.0.0.0/8','Office'),('0.0.0.0/0','Everything')]>>>nd.format=key# return just the subnet address>>>nd['10.1.1.1']['10.1.1.0/24','10.1.0.0/16','10.0.0.0/8','0.0.0.0/0']

添加子网

>>>nd['192.168.1.1']['0.0.0.0/0']# If 0.0.0.0/0 is not set, will return KeyError exception>>>nd['192.168.1.1/16']='Home'>>>nd['192.168.1.1']['192.168.0.0/16','0.0.0.0/16']# Note that the key was normalized to a proper subnet

主机和/32前缀

>>>nd['10.1.1.1']='Router'>>>nd['10.1.1.1']['10.1.1.0/24','10.1.0.0/16','10.0.0.0/8','0.0.0.0/0']# Hosts are ignored by default>>>nd.ignoreHosts=False>>>nd['10.1.1.1']='Router'['10.1.1.1/32','10.1.1.0/24','10.1.0.0/16','10.0.0.0/8','0.0.0.0/0']

IPv6子网

>>>nd['::1']Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>KeyError:Nomatchingnetworksfound,andnodefaultnetworkset# we didn't set '::/0', which is different from the '0.0.0.0/0' which is already set>>>nd['::1/128']='Localhost'# Note: /128 is a hostmask, so will be ignored if ignoreHosts = True (default)>>>nd['::1']['::1/128']

创建时设置选项

>>>nd=NetworkDict(format='both',firstHit=False,ignoreHosts=True)# Returns an empty NetworkDict object, but with default options set

要求

  • 在Python2.8上测试
  • NetAddr库

安装

通过PIP或简易安装

$ sudo pip install network_dict   # If you prefer PIP

$ sudo easy_install network_dict  # If you prefer easy_install

手动安装

$ git clone https://github.com/neoCrimeLabs/python-network_dict.git
$ cd python-network_dict
$ sudo python setup.py install

使用条件

我写这个图书馆是为了我自己使用,但我意识到其他人可能会觉得它很有用。

不幸的是,我不能保证任何积极的支持,但我会尽我最大的努力 许可证。也就是说,我很乐意接受带有适当更改的push请求 向图书馆的普通读者致辞。

简单地说,用这个你自己承担风险。如果成功了,太好了!如果没有,我可能不会 能够帮助你。不过,如果你修好了什么,请把它推回去,我会 可能会接受。:-)

此外,如果您在包、工具或商业软件中使用此库,请 我知道,我会把它列在这里!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java块是一个特定的数字吗?   JavaJavaX DocumentBuilder生成“双UTF8”字符集编码   java如何创建本机查询以使用@query注释连接相关表   apache poi从Excel工作表读取日期值(Java)   java如何创建正则表达式以将“String”“匹配为两个字符串   java这是允许用户进行通配符搜索的正确方法吗?   将javascript变量传递给JavaBean   minecraft如何在另一个java程序中运行java程序   java Gradle任务构建不包括安卓类的Jar   java如何使用ANTLR构建交互式解析器?   springdataelasticsearch基于java注释的审计?   java如何从json获取数据url?   eclipse中服务器项目中的java FileNotFoundException   复制验证文件是否在Java中复制   java使用Jetty限制HTTP持久连接上每秒的事务数