# snmp # Global variables **Descripción** Las siguientes variables pueden modificarse de modo global.
**Nombre****Descripción****Valor por defecto**
hostname
El nombre del host o dirección IP del dispositivo SNMP que deseas consultar""
version
La versión del protocolo SNMP que se utilizará para la comunicación. Puede ser 1, 2 o 31
community
La cadena de comunidad utilizada en SNMPv1 y SNMPv2c para autenticar el acceso. Es como una contraseña simple que permite la lectura de informaciónpublic
user
El nombre de usuario utilizado en SNMPv3 para autenticación y autorización""
auth_protocol
El protocolo de autenticación utilizado en SNMPv3, como "MD5" o "SHA". Debe coincidir con el protocolo configurado en el dispositivo SNMP""
auth_password
La contraseña utilizada para autenticación en SNMPv3. Debe coincidir con la configuración del dispositivo SNMP""
privacy_protocol
El protocolo de privacidad utilizado en SNMPv3 para cifrar los datos, como "DES" o "AES". Debe coincidir con la configuración del dispositivo SNMP""
privacy_password
La contraseña utilizada para cifrar los datos en SNMPv3. Debe coincidir con la configuración del dispositivo SNMP""
security_level
El nivel de seguridad utilizado en SNMPv3, que puede ser "noAuthNoPriv" (sin autenticación ni privacidad), "authNoPriv" (autenticación sin privacidad) o "authPriv" (autenticación y privacidad)
noAuthNoPriv
timeout
El tiempo máximo en segundos que se esperará por una respuesta del dispositivo SNMP antes de que se agote el tiempo de espera2
retries
El número de veces que se reintentará la operación SNMP en caso de que no se reciba una respuesta o se produzca un error1
remote_port
El número de puerto remoto utilizado para la comunicación SNMP
161
Para modificar las variables globales use la función : [set\_global\_variable](https://pandorafms.com/guides/public/books/plugintools/page/set-global-variable-821) **Versión** - 1.0.0 # set_global_variable **Descripción** Establece el valor de una variable global en el diccionario '\_GLOBAL\_VARIABLES'. **Parámetros**
**Nombre****Tipo****Requerido****Descripción**
variable\_namestrSINombre de la variable a establecer
valueNoneSiValor a asignar a la variable
**Return**
**Tipo**
None
**Versión** - 1.0.0 **Ejemplo** ``` import pandoraPlugintools as pt # Define the variable name and value to set variable_name = 'security_level' new_value = 'auth_without_privacy' # Set the value of the global variable pt.snmp.set_global_variable(variable_name, new_value) # Print the updated value of the global variable print(f"Updated value of '{variable_name}': {pt.snmp._GLOBAL_VARIABLES[variable_name]}") ``` # get_global_variable **Descripción** Obtiene el valor de una variable global del diccionario '\_GLOBAL\_VARIABLES'. **Parámetros**
**Nombre****Tipo****Requerido****Descripción**
variable\_namestrSiNombre de la variable a establecer
**Return**
**Tipo**
None
**Versión** - 1.0.0 **Ejemplo** ``` import pandoraPlugintools as pt # Define the variable name to retrieve variable_name = 'community' # Get the value of the global variable value = pt.snmp.get_global_variable(variable_name) # Print the value of the global variable print(f"The value of '{variable_name}' is: {value}") ``` # create_snmp_session **Descripción** Crea una sesión SNMP basada en las variables de configuración global. **Argumentos**
**Nombre****Tipo****Requerido****Descripción**
hoststrSiDirección IP o nombre del dispositivo SNMP
versionintNoVersión del protocolo SNMP (1, 2 o 3)
communitystrNoContraseña simple para acceso en SNMPv1/v2c
userstrSiNombre de usuario en SNMPv3
auth\_protocolstrNoProtocolo de autenticación en SNMPv3 (MD5, SHA, etc.)
auth\_passwordstrNoContraseña de autenticación en SNMPv3
privacy\_protocolstrNoProtocolo de cifrado en SNMPv3 (DES, AES, etc.)
privacy\_passwordstrNoContraseña de cifrado en SNMPv3
security\_levelstrNoNivel de seguridad en SNMPv3
timeoutintNoTiempo máximo de espera para respuestas SNMP
retriesintNoNúmero de intentos en caso de fallo
remote\_portintNoPuerto remoto para comunicación SNMP
**Return**
**Tipo****Descripción**
SessionUna sesión SNMP configurada en base a las variables globales
**Versión** - 1.0.0 **Ejemplo** ``` import PandoraPlugintools as pt # Set global variables pt.set_global_variable('hostname', '192.168.1.1') pt.set_global_variable('version', 2) pt.set_global_variable('community', 'public') pt.set_global_variable('user', 'admin') pt.set_global_variable('auth_protocol', 'md5') pt.set_global_variable('auth_password', 'authpass') pt.set_global_variable('privacy_protocol', 'des') pt.set_global_variable('privacy_password', 'privpass') pt.set_global_variable('security_level', 'authPriv') pt.set_global_variable('timeout', 5) pt.set_global_variable('retries', 2) pt.set_global_variable('remote_port', 161) # Create an SNMP session session = pt.create_snmp_session() print(session) ``` # snmp_get **Descripción** Realiza una operación SNMP GET para recuperar el valor de un OID especificado. **Parámetros**
**Nombre****Tipo****Requerido****Descripción**
oidstrSiEl OID para la operación SNMP GET
hoststrSiDirección IP o nombre del dispositivo SNMP
versionintNoVersión del protocolo SNMP (1, 2 o 3)
communitystrNoContraseña simple para acceso en SNMPv1/v2c
userstrSiNombre de usuario en SNMPv3
auth\_protocolstrNoProtocolo de autenticación en SNMPv3 (MD5, SHA, etc.)
auth\_passwordstrNoContraseña de autenticación en SNMPv3
privacy\_protocolstrNoProtocolo de cifrado en SNMPv3 (DES, AES, etc.)
privacy\_passwordstrNoContraseña de cifrado en SNMPv3
security\_levelstrNoNivel de seguridad en SNMPv3
timeoutintNoTiempo máximo de espera para respuestas SNMP
retriesintNoNúmero de intentos en caso de fallo
remote\_portintNoPuerto remoto para comunicación SNMP
**Return**
**Tipo****Descripción**
strEl valor recuperado del OID especificado
**Versión** - 1.0.0 **Ejemplo** ``` import PandoraPlugintools as pt # Set global variables pt.set_global_variable('hostname', '192.168.1.1') pt.set_global_variable('version', 2) pt.set_global_variable('community', 'public') pt.set_global_variable('timeout', 5) pt.set_global_variable('retries', 2) pt.set_global_variable('remote_port', 161) # Create an SNMP session session = pt.create_snmp_session() # Specify the OID for the SNMP GET operation oid = '1.3.6.1.2.1.1.1.0' # Perform an SNMP GET operation value = pt.snmp_get(session, oid) print('SNMP GET Value:', value) ``` # snmp_walk **Descripción** Realiza una operación SNMP WALK para recuperar una lista de valores de un subárbol de la MIB. **Parámetros**
**Nombre****Tipo****Requerido****Descripción**
oidstrSiEl OID para la operación SNMP GET
hoststrSiDirección IP o nombre del dispositivo SNMP
versionintNoVersión del protocolo SNMP (1, 2 o 3)
communitystrNoContraseña simple para acceso en SNMPv1/v2c
userstrSiNombre de usuario en SNMPv3
auth\_protocolstrNoProtocolo de autenticación en SNMPv3 (MD5, SHA, etc.)
auth\_passwordstrNoContraseña de autenticación en SNMPv3
privacy\_protocolstrNoProtocolo de cifrado en SNMPv3 (DES, AES, etc.)
privacy\_passwordstrNoContraseña de cifrado en SNMPv3
security\_levelstrNoNivel de seguridad en SNMPv3
timeoutintNoTiempo máximo de espera para respuestas SNMP
retriesintNoNúmero de intentos en caso de fallo
remote\_portintNoPuerto remoto para comunicación SNMP
**Tipo****Descripción**
dictDiccionario con la OID y el valor de cada elemento.
- 1.0.0 **Ejemplo** ``` import PandoraPlugintools as pt # Set global variables pt.set_global_variable('hostname', '192.168.1.1') pt.set_global_variable('version', 2) pt.set_global_variable('community', 'public') pt.set_global_variable('timeout', 5) pt.set_global_variable('retries', 2) pt.set_global_variable('remote_port', 161) # Create an SNMP session session = pt.create_snmp_session() # Specify the OID for the SNMP WALK operation oid = '1.3.6.1.2.1.2.2.1.2' # Example OID for interface descriptions # Perform an SNMP WALK operation values = pt.snmp_walk(session, oid) for value in values: print('SNMP WALK Value:', value) ``` # snmp_trap **Descripción** Envía un trap SNMP a la IP de destino especificada utilizando el OID, valor y comunidad dados. **Parámetros**
**Nombre****Tipo****Requerido****Descripción**
trap_oid
str
Si
El OID para el trap SNMP
trap_value
str
SI
El valor asociado a la trampa
destination_ip
str
Si
La dirección IP del destino de la trampa
community
str
Si
La cadena de comunidad SNMP para la autenticación
**Return**
**Tipo**
None
**Versión** - 1.0.0 **Ejemplo** ``` import PandoraPlugintools as pt # Specify the trap details trap_oid = '1.3.6.1.4.1.12345.1.0' # Example OID for custom trap trap_value = 'Trap from my application' destination_ip = '192.168.1.2' community = 'public' # Send an SNMP trap pt.send_trap(trap_oid, trap_value, destination_ip, community) print('SNMP Trap sent successfully.') ``` # class SNMPTarget **Descripción** Una clase que representa un objetivo SNMP, proporcionando métodos para establecer la configuración SNMP y realizar operaciones SNMP como GET y WALK. **Ejemplo** ``` import pandoraPlugintools as pt target = pt.SNMPTarget( host="192.168.1.1", community="public", version=2, timeout=5, retries=3 ) ``` ### **Funciones** ##### **snmp\_get**
**Descripción** **Parámetros**
**Nombre****Tipo****Requerido****Descripción**
oidstrSIEl OID para la operación SNMP GET
**Return**
**Tipo****Descripción**
strEl valor recuperado del OID especificado
**Versión**
- 1.0.0
**Ejemplo** ``` import pandoraPlugintools as pt target = pt.SNMPTarget( host="192.168.1.1", community="public", version=2, timeout=5, retries=3 ) oid_value = target.snmp_get("1.3.6.1.2.1.1.1.0") print("Valor del OID 1.3.6.1.2.1.1.1.0:", oid_value) ``` ##### **snmp\_walk**
**Descripción**
**Parámetros**
**Nombre****Tipo****Requerido****Descripción**
oidstrSiEl OID para la operación SNMP WALK
**Tipo****Descripción**
dictDiccionario con la OID y el valor de cada elemento.
**Versión**
- 1.0.0
**Ejemplo** ``` import pandoraPlugintools as pt target = pt.SNMPTarget( host="192.168.1.1", community="public", version=2, timeout=5, retries=3 ) oid_values_dict = target.snmp_walk("1.3.6.1.2.1.2.2.1.2") print("Valores del OID 1.3.6.1.2.1.2.2.1.2:", oid_values_dict) ```