首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Pythonic式的将变量用作任意整数的方式

Pythonic式的将变量用作任意整数的方式
EN

Stack Overflow用户
提问于 2018-07-03 15:33:59
回答 1查看 66关注 0票数 -2

我在python脚本中使用SNMP查询的参数时遇到了问题。SNMP查询采用OID作为参数。我在这里使用的OID是在下面的代码中编写的,如果在查询中单独使用,应该会返回我正在查询的IP地址的接口的状态列表。

我想要的是使用OID并附加一个变量,以便获得非常精确的信息(如果我只使用OID,我将只获得一个只会使问题复杂化的东西的列表)。

查询是这样的:

代码语言:javascript
复制
oid = "1.3.6.1.4.1.2011.5.25.119.1.1.3.1.2."    
variable = "84.79.84.79"
query = session.get(oid + variable)

在这里,此查询将返回一个损坏的SNMPObject,因为在配置我要查询的设备的过程中,由于某些原因,在参数的这两个元素之间添加了另一个数字。

下面的屏幕截图显示了SNMP请求的一些示例,该请求仅将上面的OID作为参数,没有附加变量,您可能会看到我的变量会发生变化,突出显示的附加数字也会发生变化:

基本上,我在这里寻找的是响应,但不幸的是,我不能预测我查询的每个IP地址的“随机”数字是什么。

我可以使用一个循环来尝试20或50个查询,并且只保存唯一可以工作的查询的响应,但它很难看。更好的是一些内置的函数或库,它们只会对查询说:

对该OID的SNMP查询,附加了任何整数的__,以及附加了我的变量的OID。

我绝对不想生成一个随机的int,因为它已经在我要查询的设备的配置中生成了,我只想避免循环,只是为了获得对精确查询的正确响应。

我希望这已经足够清楚了。

EN

回答 1

Stack Overflow用户

发布于 2018-07-03 15:43:12

像这样的东西应该是有效的:

代码语言:javascript
复制
from random import randint
variable = "84.79.84.79"
numbers = "1.3.6.1.4.1.2011.5.25.119.1.1.3.1.2"
query = session.get('.'.join([numbers, str(randint(1,100)), variable])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51148929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档