与sir代理交互的python api
pySIR的Python项目详细描述
#派西尔
与sir代理交互的python api。
#安装
安装执行:
pip install pySIR
#文档
pysir在python中实现sir api。它只是一对一的映射,以避免处理进行调用、获取数据或捕获错误的细节。这只是一种使用api的便捷方式。它不会带来额外的功能。
您可以这样使用这个库:
from pySIR.pySIR import pySIR sir = pySIR(‘http://localhost:8080’)
result = sir.get_top_prefixes(start_time=”2015-07-25T14:00”, end_time=”2015-07-25T15:00”, limit_prefixes=10, net_masks=”24”, exclude_net_masks=1)
每次调用后,您将得到一个`Call`对象,它有三个属性:
meta-关于调用的一些信息。
result.meta {u’length’: 10, u’request_time’: 4.2649, u’error’: False}
result-调用的实际结果。
result.result [{u’as_dst’: 43650, u’sum_bytes’: 96527904, u’key’: u‘194.132.196.0/22’}, {u’as_dst’: 1299, u’sum_bytes’: 50852480, u’key’: u‘0.0.0.0/0’}, {u’as_dst’: 2856, u’sum_bytes’: 42289633, u’key’: u‘86.128.0.0/10’}, {u’as_dst’: 43650, u’sum_bytes’: 27442840, u’key’: u‘194.132.197.72/29’}, {u’as_dst’: 3320, u’sum_bytes’: 23312608, u’key’: u‘79.192.0.0/10’}, {u’as_dst’: 2856, u’sum_bytes’: 22229909, u’key’: u‘86.128.0.0/11’}, {u’as_dst’: 2856, u’sum_bytes’: 19337668, u’key’: u‘86.128.0.0/12’}, {u’as_dst’: 3320, u’sum_bytes’: 19048046, u’key’: u‘84.128.0.0/10’}, {u’as_dst’: 2856, u’sum_bytes’: 18816388, u’key’: u‘109.144.0.0/12’}, {u’as_dst’: 3320, u’sum_bytes’: 18002994, u’key’: u‘91.0.0.0/10’}]
参数-用于调用的参数。
result.parameters {u’exclude_net_masks’: u‘1’, u’limit_prefixes’: 10, u’start_time’: u‘2015-07-25T14:00’, u’end_time’: u‘2015-07-25T15:00’, u’net_masks’: u‘24’}
##支持的方法
如前所述,这是原始api的1:1映射。您可以查看官方文档中支持的方法:
http://sdn-internet-router-sir.readthedocs.org/en/latest/api/api_v1.0.html
我建议您快速检查文件`pySIR/pySIR.py`中的代码,以快速查看支持的方法的名称。代码和名称非常简单,因此代码应该易于阅读。
##传递变量
向方法传递变量时,只需使用与原始api中相同的名称发送名为的。例如:
sir.get_top_prefixes(start_time=”2015-07-13T14:00”, end_time=”2015-07-13T15:00”, limit_prefixes=10, net_masks=”24”, exclude_net_masks=1) sir.put_variables_by_category_and_name(development, whatever, content=‘231’, extra_vars=’{“asd”: “qwe” , “zxc”:”poi”}’)
当您要发送数据时(例如,存储或更新变量时),同样适用。例如:
sir.post_variables(name=’this_is_a_variable’, content=‘231’, category=’development’, extra_vars=’{“asd”: “qwe” , “zxc”:”poi”}’) sir.put_variables_by_category_and_name(development, whatever, content=‘231’, extra_vars=’‘)
##SSL验证
默认情况下,pysir将检查ssl证书,并在ssl证书无效时引发异常。然而, 您可以通过如下初始化pysir来覆盖此行为并忽略证书:
sir = pySIR(‘https://localhost:8080’, verify_ssl=False)