我在使用oidview软件获取交换机端口OID时,发现端口的OID和真实的端口名对不上。。
比如:这个16.1的OID,一般来说应该是对应的交换机真实1号端口吧?而我真实的交换机1号端口是插着设备的,为什么没有流量呢。
所以我觉得这个16.1对应的端口并不是真实交换机的1号端口,还请专业人士帮忙解答下

第二个问题:
如何能获取到指定的端口的OID和流量数据呢?因为上面的问题导致我无法确定真实的端口和OID,所以没法针对指定端口获取流量。
我在使用oidview软件获取交换机端口OID时,发现端口的OID和真实的端口名对不上。。
比如:这个16.1的OID,一般来说应该是对应的交换机真实1号端口吧?而我真实的交换机1号端口是插着设备的,为什么没有流量呢。
所以我觉得这个16.1对应的端口并不是真实交换机的1号端口,还请专业人士帮忙解答下

第二个问题:
如何能获取到指定的端口的OID和流量数据呢?因为上面的问题导致我无法确定真实的端口和OID,所以没法针对指定端口获取流量。
关注让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言针对第一个问题,可能出现端口的OID和真实的端口名对不上的情况是因为不同厂家或不同型号的交换机使用的OID命名规则可能不同,导致混淆。因此,需要查找对应交换机厂家或型号的文档,确认正确的OID和端口的对应关系。 案例:对于华为交换机,16.1的OID可能对应的是Slot1/Port1,而不是普通的1号端口。 针对第二个问题,可以通过以下步骤获取指定端口的OID和流量数据:
from pysnmp.hlapi import *
# 指定交换机IP地址和SNMP团体字符串
ip_address = '192.168.1.1'
community_string = 'public'
# 构建GET请求,获取指定端口的OID
errorIndication, errorStatus, errorIndex, varBinds = next(
getCmd(SnmpEngine(),
CommunityData(community_string),
UdpTransportTarget((ip_address, 161)),
ContextData(),
ObjectType(ObjectIdentity('IF-MIB', 'ifDescr', 1))) # 替换为正确的OID
)
if errorIndication:
print(errorIndication)
else:
if errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex) - 1] or '?'))
else:
for varBind in varBinds:
print(' = '.join([x.prettyPrint() for x in varBind]))
# 获取指定端口的流量数据
# 类似上面的步骤,替换OID以获取流量数据
通过以上步骤和代码示例,您可以获取到指定端口的OID和流量数据。如需进一步帮助,请提供更多详细信息,以便给出更具体的解决方案。