summaryrefslogtreecommitdiff
path: root/README
blob: c9d530137381d02e75ef3ca081ed50772a8cd544 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120

SNMP engine for Python, version 2.0.10
--------------------------------------

This is a Python implementation of SNMP v.1/v.2c engine. It's general
functionality is to assemble/disassemble SNMP messages from/into
given SNMP Object IDs along with associated values. PySNMP also provides
a few transport methods specific to TCP/IP networking.

PySNMP is written entirely in Python and is self-sufficient in terms
that it does not rely on any third party tool (it is not a wrapper!).

This code is known to be used under Python interpreter version 1.5.2
and up.

This package is distributed under terms and conditions of BSD-style
license. See the LICENSE file for details.

PRECAUTIONS
-----------

If you are starting a new project, consider trying the 4.x branch
of PySNMP which is written in a more standards-compliant way and is
[hopefully] stable enough by the time of this writing.

Unfortunately, version 2.x of PySNMP software is *INCOMPATIBLE* with
its 1.x branch at the moment.

While the pure-Python MIB compiler project is underway, the ASN.1
types of Object IDs associated values must be explicitly specified
whenever user application passes values to SNMP engine.

Lack of MIB support leads to another limitation -- all the PySNMP
methods accept and report Object IDs only in dotted numeric (that is
not symbolic) representation.

INSTALLATION
------------

You might try distutils to install PySNMP by just typing:

$ python setup.py install

This should work on Unix and Microsoft Windows. Alternatively you can
install PySNMP by hand:

On UNIX, the pysnmp package can be put into the python/site-packages/
directory in the following way (assuming your Python distribution
resides under /usr/local/lib/python):

$ cd /usr/local/lib/python/site-packages
$ tar xvf /tmp/pysnmp-2.0.10.tar
$ echo pysnmp-2.0.10 > pysnmp.pth

Alternatively, the $PYTHONPATH environment variable can be updated to
point to your PySNMP package location (assuming your UNIX shell is bash):

export PYTHONPATH=/home/ilya/src/py/pysnmp-2.0.10:$PYTHONPATH

The latter trick is also known to work on Windows.

I've been told, that on Windows 2000, one needs to go to "Control panel"
-> "System" -> "Advanced" -> "Environment variables" and add/update the
PYTHONPATH environment variable there.

OPERATION
---------

Here is an example of using pysnmp package for querying SNMP agent
(cisco router) for arbitrary value.

8X---------------- cut here --------------------

Python 1.5.2 (#3, Aug 25 1999, 19:14:24)  [GCC 2.8.1] on sunos5
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>> from pysnmp import role, v2c, asn1
>>> req = v2c.GETREQUEST()
>>> req['encoded_oids'] = [ asn1.OBJECTID().encode('1.3.6.1.2.1.1.1.0') ]
>>> tr = role.manager(('router-1.glas.net', 161))
>>> (rawrsp, src) = tr.send_and_receive(req.encode())
>>> rsp = v2c.RESPONSE()
>>> rsp.decode(rawrsp)
>>> oids = map(lambda x:x[0], map(asn1.OBJECTID().decode, rsp['encoded_oids']))
>>> print oids
['.1.3.6.1.2.1.1.1.0']
>>> vals = map(lambda x: x[0](), map(asn1.decode, rsp['encoded_vals']))
>>> print vals
['Cisco Internetwork Operating System Software \015\012IOS (tm) 5300 Software
(C5300-J-M), Experimental Version 12.1(20001115:152556) [haag-V121_4 102]
\015\012Copyright (c) 1986-2000 by cisco Systems, Inc.\015\012Compiled
Mon 20-Nov-00 19:22 by haag']
>>>

8X---------------- cut here --------------------

See package documentation and examples/ directory for more information
on PySNMP services.

AVAILABILITY
------------

The PySNMP software is available for download from project's homepage:
http://sourceforge.net/projects/pysnmp/

GETTING HELP
------------

Once anything does not work as expected, please, try browsing PySNMP
mailing list archives at http://sourceforge.net/mail/?group_id=14735
or post your question there.

FEEDBACK
--------

I'm interested in bug reports and fixes, suggestions and improvements.
I'd be happy knowning whenever you used the PySNMP software for whatever
purpose. Please, send me a note then. Thanks!

=-=-=
mailto: ilya@glas.net