Guia de criação de um Agente. Criar a sua própria MIB Deve ser utilizada a ASN.1 para definir a sua própria MIB, ver exemplos da synmib e mymib. E executar: java snmp.util.MibCompiler nome_arquivo.txt Como saída, vai ter o arquivo MIB.DAT O agente deverá ter essa cara import snmp.*; import snmp.modules.*; public class MyAgent { private Agent agent; private Mib mib; private MyMethods v1; public MyAgent(int id, int port) { mib = new Mib("MIB.DAT","testmib"); v1 = new MyMethods(mib); agent = new Agent(id,port,mib,v1); } public static void main(String args[]) { new MyAgent(Integer.parseInt(args[0]),Integer.parseInt(args[1])); } } A classe Mib conterá as informações da sua MIB, no momento da sua instanciação, deverá ser passada o arquivo que contém a definição da MIB (o gerado pelo MibCompiler) e um arquivo que irá alimentar inicialmente os valores dessa MIB (???). A classe MyMethods deverá ser assim: import snmp.*; import snmp.modules.*; import snmp.pdu.*; public class MyMethods extends V1Methods { public MyMethods(Mib mib) { super(mib); } public Pdu getRequest(Pdu pdu) { return new V1Pdu(V1Pdu.GET_RESPONSE); } public Pdu getNextRequest(Pdu pdu) { return new V1Pdu(V1Pdu.GET_RESPONSE); } public Pdu setRequest(Pdu pdu) { return new V1Pdu(V1Pdu.GET_RESPONSE); } } Deve estender V1Methods, no construtor chamar super(mib), e definir os métodos de acordo com as necessidades. Ver a definição dos métodos de V1Methods para entender como funciona as chamadas para a MIB. Na definição dos métodos pode-se proceder de duas maneiras. Ou se faz as requisições para a mib para retornar os valores e inserir na PDU, ou cria-se diretamente variáveis na classe que irão representar os valores da mib para retornar direto esse valores para poupar tempo. A classe Agent é a classe do pacote snmp. No momento da sua instanciação, deverá ser passado para ele o ID, a porta, a mib e os métodos estendidos. E então ficar a espera de chamadas do Gerente. Para executar o agente na linha de comando deve-se passar o ID e a porta que ele vai escutar: java MyAgent 321 9090