Получение MAC адреса через SNMP


public void SNMPmac(string ip)
{
    try
    {
        Pdu pdu;
        SnmpV1Packet result;
        arrSNMP[5] = string.Empty;
        OctetString community = new OctetString("public");
        AgentParameters param = new AgentParameters(community);
        param.Version = SnmpVersion.Ver1;
        IpAddress agent = new IpAddress(ip);//IP address
        UdpTarget target = new UdpTarget((System.Net.IPAddress)agent, 161, 2000, 1);
        pdu = new Pdu(PduType.Get);
        pdu.VbList.Add("1.3.6.1.2.1.2.2.1.6.1"); //MAC addres
        result = (SnmpV1Packet)target.Request(pdu, param);
        if (result != null)
        {
            if (result.Pdu.ErrorStatus != 0)
            {
            }
            else
            {                
                if ((result.Pdu.VbList[0].Value.ToString()).Trim() == string.Empty)
                {
                    pdu = new Pdu(PduType.Get);
                    pdu.VbList.Add("1.3.6.1.2.1.2.2.1.6.2"); //MAC addres
                    result = (SnmpV1Packet)target.Request(pdu, param);
                    if ((result.Pdu.VbList[0].Value.ToString()).Trim() == string.Empty)
                    {
                        pdu = new Pdu(PduType.Get);
                        pdu.VbList.Add("1.3.6.1.2.1.2.2.1.6.3"); //MAC addres
                        result = (SnmpV1Packet)target.Request(pdu, param);
                        if ((result.Pdu.VbList[0].Value.ToString()).Trim() == string.Empty)
                        {
                        }
                        else
                        {
                            arrSNMP[5] = (result.Pdu.VbList[0].Value.ToString());//MAC addres
                        }
                    }
                    else
                    {
                        arrSNMP[5] = (result.Pdu.VbList[0].Value.ToString());//MAC addres
                    }
                }
                else
                {
                    arrSNMP[5] = (result.Pdu.VbList[0].Value.ToString());//MAC addres
                }
            }
        }
        target.Close();
    }
    catch (Exception)
    { }
}
Для работы вам понадобится библиотека:SnmpSharpNet.dll

Комментариев нет:

Отправить комментарий

Большая просьба, не писать в комментариях всякую ерунду не по теме!