Ver Mensaje Individual
  #3  
Antiguo 06-08-2017
kena kena is offline
Registrado
 
Registrado: jun 2006
Posts: 5
Reputación: 0
kena Va por buen camino
Hola Casimiro, Pido disculpas si no me supe expresar. Voy a tratar de explicarme un poco mejor.

- OID, o Identificador de Objeto. es una serie de numero unicos que tienen acceso a distintas partes de monitoreo de dispositivos. Ejemplo de dispositivos son: Cisco, Mikrotik, Ubiquiti etc. Cada dispositivo tiene un archvo en formato mib, es un archivo que contiene las OID(Object ID) en forma de árbol (Tree), Cada rama del arbol contine información de distintas partes del dispositivo (Memoria, Temperatura, Estado del disco etc etc).
Cada fabricante de dispositivos decide si publicar o no los archivos MIBs.. Los hay de casi todos los dipositívos.

Para acceder a estos datos se requiere hacerlo utilizando del puerto 161 (protocolo SNMP).

- Cuando hago referencia a "Equipos AP", quiero decir nodos Access Point (Paneles sectorizados para distribución de internet Inalámbrica), en mi
caso utilizo Dispositivos de la marca Ubiquiti.

- Tecnología Airmax (propietario de Ubiquiti Networks): Son protocolos de comunicaciones inalambricas, en realidad la empresa Ubiquiti, no
divulga mucho de que es en realidad. solo sabemos que es un protocolo basado en 802.11 mejorado.. digamos, algo asi.

estos protocolos fueron evolucionando en "nuevas" tecnologias como las que nombre anteriormente. cada tecnología tienen distintas formas de acceso o nuevas ramas en los archivos MIBs.


Mi problema es que no puedo hacer que mi componente SNMP de Indy lea un oid

Código Delphi [-]
procedure TfrmMainSNMP.SpeedButton1Click(Sender: TObject);
Var
 Reply : String;
begin
    SNMP.Host := IP.Text; // TEdit para pedir ingreso del host (IP Access Point)
    SNMP.Community := 'public'; // Esta es la comunidad que utilizo en cada Access Point
    SNMP.Query.Clear;
    SNMP.Query.PDUType := PDUGetRequest;
    SNMP.Query.MIBAdd( OID.Text, ''); //TEdit donde pido el ingreso de un OID
    if snmp.sendquery then
    begin
      Reply:=snmp.reply.mibget(OID.Text);
      memo1.Lines.Add(Trim(SNMP.Reply.MIBOID.Text) + ': ' + Trim(SNMP.Reply.MIBValue.Text));
    end
     else begin
      Memo1.Font.Color := clRed;
      Memo1.Lines.Add('Fallo !!!');
    end;
end;

Esto es una prueba que realice, pero siempre termina en "Fallo". es un trozo de codigo que descargue de la web.
a mi entender creo que falta un paso, creo que de alguna forma se deberia que loguear, pero no encuentro en el componente donde pide Usuario y Contraseña... es como si solo utilizaria la ip host, el puerto 161 que viene por defecto y la comunidad para acceder, lo cual no me cierra, ya que seria un grabe error de seguridad, no creo que esto haya quedado al descuido, seria imposible.

Bueno.. espero que este aclarado un poco mas el tema, espero que se entienda lo que en realidad quiero diseñar..

Actualmente tengo un pequeño soft que me comunico por SSH a los dispositivos ubiquiti, mandando comando y recibiendo los resultados. por si le sirve a alguien, quisiera realizar mi pequeño aporte.

Gracias, Saludos

Última edición por Casimiro Notevi fecha: 06-08-2017 a las 22:42:01.
Responder Con Cita