Python Net-SNMP,Linux:通过IP收集用户名

时间:2013-10-08 10:09:02

标签: python linux net-snmp

我想定义当前使用静态IP地址登录到远程主机的用户的用户名(或uids)。当然有很多方法可以解决它(例如 - 使用PKI和sshd),但我更喜欢SNMP服务。

我已经看到了这个问题的一些例子,对于ArubaOS来说是这样的(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)

我做错了什么? 使用RHEL 6.4,Python 2.6。

谢谢。

1 个答案:

答案 0 :(得分:1)

该SNMP变量是特定于企业的(.1.3.6.1。 4 .1),特别是对于Aruba SNMP代理(因此OID 14823 )。

要针对您的特定方案执行此操作,您需要Linux SNMP代理返回相同类型的数据,并且应检查相应的MIB。