Skip to content

Commit

Permalink
Update README.md for new version
Browse files Browse the repository at this point in the history
  • Loading branch information
HakkaOfDev committed Dec 7, 2021
1 parent 247c187 commit e6dcc41
Showing 1 changed file with 36 additions and 44 deletions.
80 changes: 36 additions & 44 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,81 +4,61 @@
[![foryou](https://img.shields.io/static/v1?label=For&message=You&color=aqua&labelColor=blue&style=for-the-badge)]()
[![license](https://img.shields.io/static/v1?label=License&message=OPENSOURCE&color=green&labelColor=darkgreen&style=for-the-badge)]()
<br><br>
An opensource library to use SNMP get/bulk/set/walk in Python
An opensource library to use SNMP get/set/bulk/walk/table more easily in Python

## Features

* Work with OIDS json list [Find Here](#OIDS List)
* [GET](#GET) command
* [SET](#SET) command
* [WALK](#WALK) command
* [BULK](#BULK) command
* [CHECK IF DEVICE CONNECTED](#CHECK)

## OIDS List

Change `PATH_TO_LIST` to your OIDS list if you want to use it.
* [TABLE](#TABLE) command
* [CHECK IF DEVICE IS ONLINE](#CHECK)

Example for `OIDS.json`
## Link with oids.json

```
{
"system": {
"name": "1.3.6.1.2.1.1.5",
"uptime": "1.3.6.1.2.1.1.3",
"mac_address": "1.3.6.1.2.1.2.2.1.6",
"temperature": "1.3.6.1.4.1.6296.9.1.1.2.5.1.3"
}
}
```

When constructor `SnmpUtils()` is called, the method `defineOIDsList()` is automaticaly called. So you can use the list
like this:

```
switch = SnmpUtils("10.0.0.1")
print(switch.oids.system.name) #return 1.3.6.1.2.1.1.5
```python
import json
oids = None
with open('OIDS.json', 'r') as file:
oids = json.load(file)
```

## GET

GET SNMP Command return the value of a specific OID. \
`get(oid)`

```
```python
switch = SnmpUtils("10.0.0.1")
switch_name = switch.get(switch.oids.system.name)
switch_name = switch.get(oids['system']['name']) # return name of device
```

You can also use `getByID(oid, id)` which returns the value of the inferior OID.
You can also use `get_by_id(oid, id)` which returns the value of the inferior OID.

```
```python
switch = SnmpUtils("10.0.0.1")
switch_interface_3_description = switch.getByID(switch.oids.interfaces.description, 3) # return the description of the third interface
switch_interface_3_description = switch.get_by_id(oids['interfaces']['description'], 3) # return the description of the third interface
```

## SET

SET SNMP is use for set value of a specific OID. \
`set(oid, value)`

```
`set(oid, value_type, value)` \
*value_type can be one of i/u/t/a/o/s/x/d/b*
```python
switch = SnmpUtils("10.0.0.1")
switch_name = switch.set(switch.oids.system.name, "Test")
switch_name = switch.set(oids['system']['name'], 's', "Test")
```

## WALK

WALK SNMP Command return a dict of all values of inferiors OIDs. \
`walk(oid, numberOfIterations, dotPrefix)`

You can specify the number of value do you want in second parameter.
`dotPrefix` is used for add . in front of OID.
`walk(oid)`

```
switch = SnmpUtils("10.0.0.1")
switch_10_interfaces_description = switch.walk(switch.oids.interfaces.description, 10) # return a dict with key/value
for k,v in switch_10_interfaces_description.items():
switch_interfaces_description = switch.walk(oids['interfaces']['description']) # return a dict with key/value
for k,v in switch_interfaces_description.items():
print(k,v)
```

Expand All @@ -89,23 +69,35 @@ BULK SNMP returns all following items up to a limit for an/several item(s). \

```
switch = SnmpUtils("10.0.0.1")
switch_interfaces_description = switch.bulk(switch.oids.interfaces.description) #return a dict with description for all interfaces
switch_interfaces_description = switch.bulk(oids['interfaces']['description']) #return a dict with description for all interfaces
```

## TABLE

TABLE SNMP returns list of dicts \
`get_table(oid, sort_key)`

```
switch = SnmpUtils("10.0.0.1")
switch_interfaces = switch.get_table('1.3.6.1.2.1.2.2') # return list of dicts
```


## CHECK

You can easily check if a device is online \
`isConnected()`
`is_online()`

```
switch = ("10.0.0.1")
if switch.isConnected():
if switch.is_online():
print("Switch online")
```

## Dependencies

* [PySNMP](https://pysnmp.readthedocs.io/en/latest/)
* [SNMP-CMDS](https://snmp-cmds.readthedocs.io/en/latest/)

## Contributors

Expand Down

0 comments on commit e6dcc41

Please sign in to comment.