python - 将变量用作任何整数的 Pythonic 方式
问题描述
我在 python 脚本中的 SNMP 查询参数遇到问题。SNMP 查询将 OID 作为参数。我在这里使用的 OID 写在下面的代码中,如果在查询中单独使用,应该返回我正在查询的 IP 地址的接口的状态列表。
我想要的是使用附加了一个变量的 OID 以获得非常精确的信息(如果我单独使用 OID,我只会得到一个只会使我的问题复杂化的事物列表)。
查询是这样的:
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 查询,附加任何整数,并附加我的变量”。
我绝对不想生成一个随机整数,因为它已经在我正在查询的设备的配置中生成,我只想避免循环只是为了获得对精确查询的正确响应。
我希望这已经足够清楚了。
解决方案
像这样的东西应该工作:
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])
推荐阅读
- c++ - GetKeyboardLayout() 在 ENG US 和 ENG INT 之间切换时不会改变
- android - 如何使用 Picasso 和 Android Studio 将图像加载到 Android 应用程序中
- graph-databases - Gentics Mesh 模式中的新字段类型
- python - 如何修复返回列表中最大增加的python代码的“列表索引超出范围”错误?
- angular - 将 FullCalendar 与 Angular 8 一起使用,dayGridMonth 中的事件与 timeGridWeek 不同,没有结束值
- php - 使用 composer 安装 phpunit selenium 时安装失败
- html - 具有 3 个固定宽度列的页面
- reactjs - 如何设置语义 UI 禁用按钮的样式
- java - Java 代码“NumberFormat nf = NumberFormat.getInstance();”
- c++ - 我正在编写一个拆分为 3 的合并排序,我不知道为什么它不起作用