【发布时间】:2016-09-22 13:51:14
【问题描述】:
我得到了这个通过 SNMP 检索信息的旧版 powershell 脚本,我正在尝试使用 snimpy 将其移植到 Python 中。
$PrintersIP = '10.100.7.47', '10.100.7.48'
Function Get-SNMPInfo ([String[]]$Printers) {
Begin {
$SNMP = New-Object -ComObject olePrn.OleSNMP
}
Process {
Foreach ($IP in $Printers) {
$SNMP.Open($IP,"public",2,3000)
[PSCustomObject][Ordered]@{
Name = $SNMP.Get(".1.3.6.1.2.1.1.5.0")
IP = $IP
UpTime = [TimeSpan]::FromSeconds(($SNMP.Get(".1.3.6.1.2.1.1.3.0"))/100)
Model = $SNMP.Get(".1.3.6.1.2.1.25.3.2.1.3.1")
Description = $SNMP.Get(".1.3.6.1.2.1.1.1.0")
#Contact = $SNMP.Get(".1.3.6.1.2.1.1.4.0")
#SN = $SNMP.Get(".1.3.6.1.2.1.43.5.1.1.17.1")
#Location = $SNMP.Get(".1.3.6.1.2.1.1.6.0")
#TonerName = $SNMP.Get("43.11.1.1.6.1.1")
}
}
}
End {
$SNMP.Close()
}
}
Get-SNMPInfo $PrintersIP | ft -AutoSize *
Simpy 用法
他们使用load 方法从section Usage of the official documentation 加载MIB 文件。
from snimpy.manager import Manager as M
from snimpy.manager import load
load("IF-MIB")
m = M("localhost")
print(m.ifDescr[0])
寻找OID姓名
我找不到某些标识符的 OID 名称。例如:
-
1.3.6.1.2.1.1.5.0→ 没有; -
1.3.6.1.2.1.1.5→sysName.
问题
- 根据我尝试使用的
OID的名称,我需要加载不同的 MIB 文件吗? (例如Printer-MIB、IF-MIB等) - 我在哪里可以找到丢失的
OID的名字
【问题讨论】:
标签: python powershell snmp mib snimpy