我想用静态IP地址定义当前登录到远程主机的用户的用户名(或uid)。当然有很多方法可以解决这个问题(例如使用PKI和sshd),但我更喜欢SNMP服务。
我已经看到了这个问题的一些例子,比如这个(from here,对于阿鲁宝来说):

snmpbulkwalk -v 2c -c secure 10.1.30.9 .1.3.6.1.4.1.14823.2.2.1.4.1.2.1.3

我正试图在Python上实现这种方法,并得到一个错误:
In [33]: import netsnmp

In [34]: oid = netsnmp.Varbind("nUserName")

In [35]: result = netsnmp.snmpget(oid, Version = 2, DestHost="localhost", Community="public")
error: get: unknown object ID (nUserName)

我做错什么了?
使用RHEL6.4和Python2.6。
谢谢您。

最佳答案

该SNMP变量是企业特定的(.1.3.6.1.4.1),专门用于Aruba SNMP代理(因此是OID 14823)。
要为您的特定场景执行此操作,您需要Linux SNMP代理返回相同类型的数据,并且应该检查相应的MIB。

10-08 09:43