IPv6 Link-локальный адрес как UDP6TransportTarget в PySNMP?
Я пытаюсь сделать SNMP-запрос к агенту по локальному адресу FE80::1:1%enp0s8
, Вот код:
#!/usr/bin/python3
from pysnmp.hlapi import *
USER_KEY='manager1'
AUTH_PROT=usmHMACMD5AuthProtocol
PRIV_PROT=usmAesCfb256Protocol
userData = UsmUserData('manager', authKey=USER_KEY,
privKey=USER_KEY,
authProtocol=AUTH_PROT,
privProtocol=PRIV_PROT)
target=Udp6TransportTarget(('FE80::1:1%enp0s8',161))
g = getCmd(SnmpEngine(),
userData,
target,
ContextData(),
ObjectType(ObjectIdentity('SNMPv2-MIB','sysUpTime',0)))
print(next(g))
где enp0s8
мой интерфейс, где я бы нашел агента. Однако, когда я использую это, я получаю это сообщение об ошибке:
Traceback (most recent call last):
File "get-SNMP-var.py", line 21, in <module>
print(next(g))
File "/usr/lib/python3.5/site-packages/pysnmp/hlapi/asyncore/sync/cmdgen.py", line 107, in getCmd
lookupMib=options.get('lookupMib', True)))
File "/usr/lib/python3.5/site-packages/pysnmp/hlapi/asyncore/cmdgen.py", line 122, in getCmd
addrName, paramsName = lcd.configure(snmpEngine, authData, transportTarget)
File "/usr/lib/python3.5/site-packages/pysnmp/hlapi/lcd.py", line 107, in configure
transportTarget.tagList
File "/usr/lib/python3.5/site-packages/pysnmp/entity/config.py", line 269, in addTargetAddr
transportAddress = TransportAddressIPv6(transportAddress)
File "/usr/lib/python3.5/site-packages/pyasn1/type/univ.py", line 312, in __init__
base.AbstractSimpleAsn1Item.__init__(self, value, tagSet, subtypeSpec)
File "/usr/lib/python3.5/site-packages/pyasn1/type/base.py", line 74, in __init__
value = self.prettyIn(value)
File "<string>", line 217, in prettyIn
OSError: illegal IP address string passed to inet_pton
Когда я не указываю интерфейс для этого локального адреса, время ожидания истекает. С помощью snmpget
Утилита с указанием объема работ.
Мой вопрос: как я могу указать область локального адреса IPv6, используя Udp6TransportTarget
?