⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 snmptftp.java

📁 实现cisco snmp tftp,能用snmp tftp上传下载文件
💻 JAVA
字号:
// Decompiled by DJ v3.9.9.91 Copyright 2005 Atanas Neshkov  Date: 2008-4-11 9:46:41
// Home Page : http://members.fortunecity.com/neshkov/dj.html  - Check often for new version!
// Decompiler options: fullnames 
// Source File Name:   SnmpTftpServlet.java

import java.io.PrintStream;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.StringTokenizer;
import org.opennms.protocols.snmp.SnmpHandler;
import org.opennms.protocols.snmp.SnmpIPAddress;
import org.opennms.protocols.snmp.SnmpInt32;
import org.opennms.protocols.snmp.SnmpObjectId;
import org.opennms.protocols.snmp.SnmpOctetString;
import org.opennms.protocols.snmp.SnmpPduPacket;
import org.opennms.protocols.snmp.SnmpPduRequest;
import org.opennms.protocols.snmp.SnmpSession;
import org.opennms.protocols.snmp.SnmpSyntax;
import org.opennms.protocols.snmp.SnmpVarBind;

class snmptftp
    implements org.opennms.protocols.snmp.SnmpHandler
{

    snmptftp()
    {
        m_community = null;
        m_retries = 2;
        m_timeout = 5000;
        m_port = 161;
        m_host = "172.16.1.3";
        m_result = false;
        ndx = 0;
    }

    public void snmpInternalError(org.opennms.protocols.snmp.SnmpSession snmpsession, int i, org.opennms.protocols.snmp.SnmpSyntax snmpsyntax)
    {
        java.lang.System.err.println("An unexpected error occured with the SNMP Session");
        java.lang.System.err.println("The error code is " + i);
        failure_cause = "SNMP\u8BF7\u6C42\u5931\u8D25\uFF0C\u7A0B\u5E8F\u5185\u90E8\u9519\u8BEF";
        synchronized(snmpsession)
        {
            snmpsession.notify();
        }
    }

    public void snmpTimeoutError(org.opennms.protocols.snmp.SnmpSession snmpsession, org.opennms.protocols.snmp.SnmpSyntax snmpsyntax)
    {
        java.lang.System.err.println("The session timed out trying to communicate with the remote host");
        m_result = false;
        failure_cause = "SNMP\u8BF7\u6C42\u5931\u8D25\uFF0C\u53EF\u80FD\u8DEF\u7531\u5668\u5730\u5740\u6216\u8005Community\u4E0D\u5B58\u5728";
        synchronized(snmpsession)
        {
            snmpsession.notify();
        }
    }

    public void snmpReceivedPdu(org.opennms.protocols.snmp.SnmpSession snmpsession, int i, org.opennms.protocols.snmp.SnmpPduPacket snmppdupacket)
    {
        org.opennms.protocols.snmp.SnmpPduRequest snmppdurequest = null;
        if(snmppdupacket instanceof org.opennms.protocols.snmp.SnmpPduRequest)
            snmppdurequest = (org.opennms.protocols.snmp.SnmpPduRequest)snmppdupacket;
        if(snmppdupacket.getCommand() != 162)
        {
            java.lang.System.err.println("Error: Received non-response command " + snmppdupacket.getCommand());
            failure_cause = "SNMP\u8BF7\u6C42\u5931\u8D25\uFF0C\u7A0B\u5E8F\u5185\u90E8\u9519\u8BEF";
            synchronized(snmpsession)
            {
                snmpsession.notify();
            }
            return;
        }
        if(snmppdurequest.getErrorStatus() != 0)
        {
            java.lang.System.out.println("End of mib reached");
            failure_cause = "SNMP\u8BF7\u6C42\u5931\u8D25\uFF0C\u65E0\u6CD5\u83B7\u5F97MIB\u503C";
            ndx = 20;
        }
        org.opennms.protocols.snmp.SnmpVarBind snmpvarbind = snmppdupacket.getVarBindAt(0);
        java.lang.System.out.println(snmpvarbind.getName().toString() + ": " + snmpvarbind.getValue().toString());
        if(snmpvarbind.getValue().typeId() == -126)
        {
            java.lang.System.out.println("End of mib reached");
            failure_cause = "SNMP\u8BF7\u6C42\u5931\u8D25\uFF0C\u65E0\u6CD5\u83B7\u5F97MIB\u503C";
            ndx = 20;
        }
        if(ndx - start_ndx < 5)
        {
            org.opennms.protocols.snmp.SnmpPduRequest snmppdurequest1 = new SnmpPduRequest(163);
            ndx++;
            snmppdurequest1.addVarBindAt(0, m_mibvar[ndx]);
            snmppdurequest1.setRequestId(org.opennms.protocols.snmp.SnmpPduPacket.nextSequence());
            snmpsession.send(snmppdurequest1);
        } else
        if(ndx - start_ndx == 5)
        {
            org.opennms.protocols.snmp.SnmpPduRequest snmppdurequest2 = new SnmpPduRequest(160);
            ndx++;
            snmppdurequest2.addVarBindAt(0, m_mibvar[ndx]);
            snmppdurequest2.setRequestId(org.opennms.protocols.snmp.SnmpPduPacket.nextSequence());
            snmpsession.send(snmppdurequest2);
        } else
        if(ndx - start_ndx == 6)
        {
            org.opennms.protocols.snmp.SnmpInt32 snmpint32 = (org.opennms.protocols.snmp.SnmpInt32)snmpvarbind.getValue();
            int j = snmpint32.getValue();
            if(start_ndx == 0 && j == 2 || start_ndx == 8 && j == 1)
            {
                try
                {
                    java.lang.Thread.sleep(1000L);
                }
                catch(java.lang.InterruptedException interruptedexception) { }
                org.opennms.protocols.snmp.SnmpPduRequest snmppdurequest3 = new SnmpPduRequest(160);
                snmppdurequest3.addVarBindAt(0, m_mibvar[ndx]);
                snmppdurequest3.setRequestId(org.opennms.protocols.snmp.SnmpPduPacket.nextSequence());
                snmpsession.send(snmppdurequest3);
            } else
            if(start_ndx == 0 && j != 2)
            {
                if(j == 3)
                {
                    m_result = true;
                    org.opennms.protocols.snmp.SnmpPduRequest snmppdurequest4 = new SnmpPduRequest(163);
                    m_mibvar[5].setValue(new SnmpInt32(6));
                    snmppdurequest4.addVarBindAt(0, m_mibvar[5]);
                    snmppdurequest4.setRequestId(org.opennms.protocols.snmp.SnmpPduPacket.nextSequence());
                    snmpsession.send(snmppdurequest4);
                    ndx = 20;
                } else
                if(j == 4)
                {
                    ndx++;
                    org.opennms.protocols.snmp.SnmpPduRequest snmppdurequest5 = new SnmpPduRequest(160);
                    snmppdurequest5.addVarBindAt(0, m_mibvar[ndx]);
                    snmppdurequest5.setRequestId(org.opennms.protocols.snmp.SnmpPduPacket.nextSequence());
                    snmpsession.send(snmppdurequest5);
                }
            } else
            if(start_ndx == 8 && j != 1)
            {
                if(j == 2)
                    m_result = true;
                else
                    failure_cause = "TFTP\u4F20\u8F93\u5931\u8D25(" + IosfileFailure[j - 3] + ")";
                org.opennms.protocols.snmp.SnmpPduRequest snmppdurequest6 = new SnmpPduRequest(163);
                m_mibvar[13].setValue(new SnmpInt32(6));
                snmppdurequest6.addVarBindAt(0, m_mibvar[13]);
                snmppdurequest6.setRequestId(org.opennms.protocols.snmp.SnmpPduPacket.nextSequence());
                snmpsession.send(snmppdurequest6);
                ndx = 20;
            }
        } else
        if(ndx == 7)
        {
            org.opennms.protocols.snmp.SnmpInt32 snmpint32_1 = (org.opennms.protocols.snmp.SnmpInt32)snmpvarbind.getValue();
            int k = snmpint32_1.getValue();
            failure_cause = "TFTP\u4F20\u8F93\u5931\u8D25(" + ConfigFailure[k - 1] + ")";
            org.opennms.protocols.snmp.SnmpPduRequest snmppdurequest7 = new SnmpPduRequest(163);
            m_mibvar[5].setValue(new SnmpInt32(6));
            snmppdurequest7.addVarBindAt(0, m_mibvar[5]);
            snmppdurequest7.setRequestId(org.opennms.protocols.snmp.SnmpPduPacket.nextSequence());
            snmpsession.send(snmppdurequest7);
            ndx = 20;
        } else
        {
            synchronized(snmpsession)
            {
                snmpsession.notify();
            }
        }
    }

    public void setCommunity(java.lang.String s, java.lang.String s1)
    {
        m_host = s;
        m_community = s1;
    }

    public void setVarValue(java.lang.String s, boolean flag, int i)
    {
        java.net.InetAddress inetaddress = null;
        try
        {
            inetaddress = java.net.InetAddress.getByName("202.103.106.10");
        }
        catch(java.net.UnknownHostException unknownhostexception)
        {
            java.lang.System.err.println("UnknownHostException: " + unknownhostexception.getMessage());
        }
        if(i == 2)
        {
            java.util.StringTokenizer stringtokenizer = new StringTokenizer(s, "_");
            java.lang.String s1 = null;
            start_ndx = 8;
            ndx = 8;
            for(int j = 0; stringtokenizer.hasMoreTokens() && j < 2; j++)
                s1 = stringtokenizer.nextToken();

            if(flag)
            {
                m_mibvar[8].setValue(new SnmpInt32(3));
                m_mibvar[9].setValue(new SnmpInt32(1));
                m_mibvar[10].setValue(new SnmpIPAddress(inetaddress.getAddress()));
                m_mibvar[11].setValue(new SnmpOctetString(s1.getBytes()));
                m_mibvar[12].setValue(new SnmpOctetString(s.getBytes()));
                m_mibvar[13].setValue(new SnmpInt32(1));
            } else
            {
                m_mibvar[8].setValue(new SnmpInt32(1));
                m_mibvar[9].setValue(new SnmpInt32(1));
                m_mibvar[10].setValue(new SnmpIPAddress(inetaddress.getAddress()));
                m_mibvar[11].setValue(new SnmpOctetString(s.getBytes()));
                m_mibvar[12].setValue(new SnmpOctetString(s1.getBytes()));
                m_mibvar[13].setValue(new SnmpInt32(1));
            }
        } else
        {
            ndx = 0;
            start_ndx = 0;
            m_mibvar[0].setValue(new SnmpInt32(1));
            if(flag)
            {
                m_mibvar[1].setValue(new SnmpInt32(i));
                m_mibvar[2].setValue(new SnmpInt32(1));
            } else
            {
                m_mibvar[1].setValue(new SnmpInt32(1));
                m_mibvar[2].setValue(new SnmpInt32(i));
            }
            m_mibvar[3].setValue(new SnmpIPAddress(inetaddress.getAddress()));
            m_mibvar[4].setValue(new SnmpOctetString(s.getBytes()));
            m_mibvar[5].setValue(new SnmpInt32(1));
        }
    }

    public boolean getResult()
    {
        return m_result;
    }

    public java.lang.String getFailureCause()
    {
        return failure_cause;
    }

    java.lang.String m_community;
    int m_retries;
    int m_timeout;
    int m_port;
    java.lang.String m_host;
    private static java.lang.String IosfileFailure[] = {
        "copyInvalidOperation", "copyInvalidProtocol", "copyInvalidSourceName", "copyInvalidDestName", "copyInvalidServerAddress", "copyDeviceBusy", "copyDeviceOpenError", "copyDeviceError", "copyDeviceNotProgrammable", "copyDeviceFull", 
        "copyFileOpenError", "copyFileTransferError", "copyFileChecksumError", "copyNoMemory", "copyUnknownFailure"
    };
    private static java.lang.String ConfigFailure[] = {
        "unknown", "badFileName", "timeout", "noMem", "noConfig"
    };
    private boolean m_result;
    private java.lang.String failure_cause;
    public static org.opennms.protocols.snmp.SnmpVarBind m_mibvar[];
    private int ndx;
    public int start_ndx;

    static 
    {
        m_mibvar = null;
        m_mibvar = new org.opennms.protocols.snmp.SnmpVarBind[17];
        m_mibvar[0] = new SnmpVarBind(".1.3.6.1.4.1.9.9.96.1.1.1.1.2.777");
        m_mibvar[1] = new SnmpVarBind(".1.3.6.1.4.1.9.9.96.1.1.1.1.3.777");
        m_mibvar[2] = new SnmpVarBind(".1.3.6.1.4.1.9.9.96.1.1.1.1.4.777");
        m_mibvar[3] = new SnmpVarBind(".1.3.6.1.4.1.9.9.96.1.1.1.1.5.777");
        m_mibvar[4] = new SnmpVarBind(".1.3.6.1.4.1.9.9.96.1.1.1.1.6.777");
        m_mibvar[5] = new SnmpVarBind(".1.3.6.1.4.1.9.9.96.1.1.1.1.14.777");
        m_mibvar[6] = new SnmpVarBind(".1.3.6.1.4.1.9.9.96.1.1.1.1.10.777");
        m_mibvar[7] = new SnmpVarBind(".1.3.6.1.4.1.9.9.96.1.1.1.1.13.777");
        m_mibvar[8] = new SnmpVarBind(".1.3.6.1.4.1.9.9.10.1.2.1.1.2.777");
        m_mibvar[9] = new SnmpVarBind(".1.3.6.1.4.1.9.9.10.1.2.1.1.3.777");
        m_mibvar[10] = new SnmpVarBind(".1.3.6.1.4.1.9.9.10.1.2.1.1.4.777");
        m_mibvar[11] = new SnmpVarBind(".1.3.6.1.4.1.9.9.10.1.2.1.1.5.777");
        m_mibvar[12] = new SnmpVarBind(".1.3.6.1.4.1.9.9.10.1.2.1.1.6.777");
        m_mibvar[13] = new SnmpVarBind(".1.3.6.1.4.1.9.9.10.1.2.1.1.11.777");
        m_mibvar[14] = new SnmpVarBind(".1.3.6.1.4.1.9.9.10.1.2.1.1.8.777");
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -