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

📄 ipaddress.java

📁 snmp4j
💻 JAVA
字号:
/*_############################################################################  _##  _##  SNMP4J - IpAddress.java  _##  _##  Copyright 2003-2005  Frank Fock and Jochen Katz (SNMP4J.org)  _##  _##  Licensed under the Apache License, Version 2.0 (the "License");  _##  you may not use this file except in compliance with the License.  _##  You may obtain a copy of the License at  _##  _##      http://www.apache.org/licenses/LICENSE-2.0  _##  _##  Unless required by applicable law or agreed to in writing, software  _##  distributed under the License is distributed on an "AS IS" BASIS,  _##  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  _##  See the License for the specific language governing permissions and  _##  limitations under the License.  _##  _##########################################################################*/package org.snmp4j.smi;import java.io.*;import java.net.*;import org.snmp4j.asn1.BER;import org.snmp4j.asn1.BERInputStream;/** * The <code>IpAddress</code> class represents an IPv4 address SNMP variable. * * @author Frank Fock * @version 1.0 */public class IpAddress extends SMIAddress {  static final long serialVersionUID = -146846354059565449L;  private static final byte[] IPANYADDRESS = { 0,0,0,0 };  public static final InetAddress ANY_IPADDRESS = createAnyAddress();  private java.net.InetAddress inetAddress;  /**   * Creates a <code>0.0.0.0</code> IP address.   */  public IpAddress() {    this.inetAddress = ANY_IPADDRESS;  }  /**   * Creates an IP address from an <code>InetAddress</code>   * @param address   *    an <code>InetAddress</code> instance (must not necessarily be a IPv4   *    address).   */  public IpAddress(InetAddress address) {    if (address == null) {      throw new NullPointerException();    }    this.inetAddress = address;  }  /**   * Create an IP address from an address string.   * @param address   *    an IP address String.   * @see Address#parseAddress(String address)   */  public IpAddress(String address) {    if (!parseAddress(address)) {      throw new IllegalArgumentException(address);    }  }  public int getSyntax() {    return SMIConstants.SYNTAX_IPADDRESS;  }  public boolean isValid() {    return (inetAddress != null);  }  public String toString() {    String addressString = inetAddress.toString();    return addressString.substring(addressString.indexOf('/')+1);  }  public int hashCode() {    if (inetAddress != null) {      return inetAddress.hashCode();    }    return 0;  }  /**   * Parses an IP address string and returns the corresponding   * <code>IpAddress</code> instance.   * @param address   *    an IP address string which may be a host name or a numerical IP address.   * @return   *    an <code>IpAddress</code> instance or <code>null</code> if   *    <code>address</code> cannot not be parsed.   * @see Address#parseAddress(String address)   */  public static Address parse(String address) {    try {      InetAddress addr = InetAddress.getByName(address);      return new IpAddress(addr);    }    catch (Exception ex) {      return null;    }  }  public boolean parseAddress(String address) {    try {      inetAddress = InetAddress.getByName(address);      return true;    }    catch (UnknownHostException uhex) {      return false;    }  }  public int compareTo(Object o) {    OctetString a = new OctetString(inetAddress.getAddress());    return a.compareTo(new OctetString(((IpAddress)o).getInetAddress().getAddress()));  }  public boolean equals(Object o) {    return (compareTo(o) == 0);  }  public void decodeBER(BERInputStream inputStream) throws java.io.IOException {    BER.MutableByte type = new BER.MutableByte();    byte[] value = BER.decodeString(inputStream, type);    if (type.getValue() != BER.IPADDRESS) {      throw new IOException("Wrong type encountered when decoding Counter: "+                            type.getValue());    }    if (value.length != 4) {      throw new IOException("IpAddress encoding error, wrong length: " +                            value.length);    }    inetAddress = InetAddress.getByAddress(value);  }  public void encodeBER(OutputStream outputStream) throws java.io.IOException {    byte[] address = new byte[4];    System.arraycopy(inetAddress.getAddress(), 0, address, 0, 4);    BER.encodeString(outputStream, BER.IPADDRESS, inetAddress.getAddress());  }  public int getBERLength() {    return 6;  }  public void setAddress(byte[] rawValue) throws UnknownHostException {    this.inetAddress = InetAddress.getByAddress(rawValue);  }  public void setInetAddress(java.net.InetAddress inetAddress) {    this.inetAddress = inetAddress;  }  public InetAddress getInetAddress() {    return inetAddress;  }  private static InetAddress createAnyAddress() {    try {      return InetAddress.getByAddress(IPANYADDRESS);    }    catch (Exception ex) {      ex.printStackTrace();    }    return null;  }  public Object clone() {    return new IpAddress(inetAddress);  }}

⌨️ 快捷键说明

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