package org.snmp4j.smi;

import java.io.IOException;
import java.io.OutputStream;
import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.snmp4j.agent.mo.snmp.DisplayString;
import org.snmp4j.asn1.BER;
import org.snmp4j.asn1.BERInputStream;
import org.snmp4j.log.LogAdapter;
import org.snmp4j.log.LogFactory;

/* JADX INFO: loaded from: classes.dex */
public class IpAddress extends SMIAddress implements AssignableFromByteArray {
    private static final long serialVersionUID = -146846354059565449L;
    private InetAddress inetAddress;
    private static final LogAdapter logger = LogFactory.getLogger(AbstractVariable.class);
    private static final byte[] IPANYADDRESS = {0, 0, 0, 0};
    public static final InetAddress ANY_IPADDRESS = createAnyAddress();

    public IpAddress() {
        this.inetAddress = ANY_IPADDRESS;
    }

    private static InetAddress createAnyAddress() {
        try {
            return InetAddress.getByAddress(IPANYADDRESS);
        } catch (Exception e2) {
            logger.error("Unable to create any IpAddress: " + e2.getMessage(), e2);
            return null;
        }
    }

    public static Address parse(String str) {
        try {
            return new IpAddress(InetAddress.getByName(str));
        } catch (Exception e2) {
            logger.error("Unable to parse IpAddress from: " + str, e2);
            return null;
        }
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.smi.Variable
    public Object clone() {
        return new IpAddress(this.inetAddress);
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.asn1.BERSerializable
    public void decodeBER(BERInputStream bERInputStream) throws IOException {
        BER.MutableByte mutableByte = new BER.MutableByte();
        byte[] bArrDecodeString = BER.decodeString(bERInputStream, mutableByte);
        if (mutableByte.getValue() != 64) {
            throw new IOException("Wrong type encountered when decoding Counter: " + ((int) mutableByte.getValue()));
        }
        if (bArrDecodeString.length == 4) {
            this.inetAddress = InetAddress.getByAddress(bArrDecodeString);
            return;
        }
        throw new IOException("IpAddress encoding error, wrong length: " + bArrDecodeString.length);
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.asn1.BERSerializable
    public void encodeBER(OutputStream outputStream) throws IOException {
        byte[] bArr = new byte[4];
        InetAddress inetAddress = this.inetAddress;
        if (!(inetAddress instanceof Inet6Address)) {
            System.arraycopy(inetAddress.getAddress(), 0, bArr, 0, 4);
        } else if (((Inet6Address) inetAddress).isIPv4CompatibleAddress()) {
            System.arraycopy(this.inetAddress.getAddress(), r2.length - 5, bArr, 0, 4);
        }
        BER.encodeString(outputStream, (byte) 64, bArr);
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.smi.Variable
    public boolean equals(Object obj) {
        return (obj instanceof IpAddress) && compareTo((Variable) obj) == 0;
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.smi.Variable
    public void fromSubIndex(OID oid, boolean z) {
        byte[] bArr = new byte[4];
        for (int i2 = 0; i2 < 4; i2++) {
            bArr[i2] = (byte) (oid.get(i2) & DisplayString.MAX_SIZE);
        }
        try {
            setAddress(bArr);
        } catch (UnknownHostException e2) {
            throw new RuntimeException(e2);
        }
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.asn1.BERSerializable
    public int getBERLength() {
        return 6;
    }

    public InetAddress getInetAddress() {
        return this.inetAddress;
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.smi.Variable
    public int getSyntax() {
        return 64;
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.smi.Variable
    public int hashCode() {
        InetAddress inetAddress = this.inetAddress;
        if (inetAddress != null) {
            return inetAddress.hashCode();
        }
        return 0;
    }

    @Override // org.snmp4j.smi.Address
    public boolean isValid() {
        return this.inetAddress != null;
    }

    @Override // org.snmp4j.smi.Address
    public boolean parseAddress(String str) {
        try {
            this.inetAddress = InetAddress.getByName(str);
            return true;
        } catch (UnknownHostException unused) {
            return false;
        }
    }

    public void setAddress(byte[] bArr) throws UnknownHostException {
        this.inetAddress = InetAddress.getByAddress(bArr);
    }

    public void setInetAddress(InetAddress inetAddress) {
        this.inetAddress = inetAddress;
    }

    @Override // org.snmp4j.smi.Address, org.snmp4j.smi.AssignableFromString
    public void setValue(String str) {
        if (parseAddress(str)) {
            return;
        }
        throw new IllegalArgumentException(str + " cannot be parsed by " + getClass().getName());
    }

    @Override // org.snmp4j.smi.AssignableFromByteArray
    public byte[] toByteArray() {
        if (getInetAddress() != null) {
            return getInetAddress().getAddress();
        }
        return null;
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.smi.Variable
    public int toInt() {
        throw new UnsupportedOperationException();
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.smi.Variable
    public long toLong() {
        throw new UnsupportedOperationException();
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.smi.Variable
    public String toString() {
        InetAddress inetAddress = this.inetAddress;
        if (inetAddress == null) {
            return "0.0.0.0";
        }
        String string = inetAddress.toString();
        return string.substring(string.indexOf(47) + 1);
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.smi.Variable
    public OID toSubIndex(boolean z) {
        byte[] bArr = new byte[4];
        System.arraycopy(this.inetAddress.getAddress(), 0, bArr, 0, 4);
        OID oid = new OID(new int[4]);
        for (int i2 = 0; i2 < 4; i2++) {
            oid.set(i2, bArr[i2] & 255);
        }
        return oid;
    }

    @Override // org.snmp4j.smi.AbstractVariable, java.lang.Comparable
    public int compareTo(Variable variable) {
        return new OctetString(this.inetAddress.getAddress()).compareTo((Variable) new OctetString(((IpAddress) variable).getInetAddress().getAddress()));
    }

    public IpAddress(InetAddress inetAddress) {
        if (inetAddress != null) {
            this.inetAddress = inetAddress;
            return;
        }
        throw null;
    }

    @Override // org.snmp4j.smi.AssignableFromByteArray
    public void setValue(byte[] bArr) {
        try {
            setAddress(bArr);
        } catch (UnknownHostException e2) {
            throw new RuntimeException(e2);
        }
    }

    public IpAddress(String str) {
        if (!parseAddress(str)) {
            throw new IllegalArgumentException(str);
        }
    }

    public IpAddress(byte[] bArr) {
        try {
            this.inetAddress = InetAddress.getByAddress(bArr);
        } catch (UnknownHostException e2) {
            throw new IllegalArgumentException("Unknown host: " + e2.getMessage());
        }
    }
}
