home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2007 April / PCpro_2007_04.ISO / files / dsl / jNetTool.exe / org / xbill / DNS / ReverseMap.class (.txt) < prev    next >
Encoding:
Java Class File  |  2005-06-05  |  2.0 KB  |  57 lines

  1. package org.xbill.DNS;
  2.  
  3. import java.net.InetAddress;
  4. import java.net.UnknownHostException;
  5.  
  6. public final class ReverseMap {
  7.    private static Name inaddr = Name.fromConstantString("in-addr.arpa.");
  8.  
  9.    private ReverseMap() {
  10.    }
  11.  
  12.    public static Name fromAddress(int[] addr) {
  13.       if (addr.length != 4) {
  14.          throw new IllegalArgumentException("array must contain 4 elements");
  15.       } else {
  16.          StringBuffer sb = new StringBuffer();
  17.  
  18.          for(int i = 3; i >= 0; --i) {
  19.             if (addr[i] < 0 || addr[i] > 255) {
  20.                throw new IllegalArgumentException("array must contain values between 0 and 255");
  21.             }
  22.  
  23.             sb.append(addr[i]);
  24.             if (i > 0) {
  25.                sb.append(".");
  26.             }
  27.          }
  28.  
  29.          try {
  30.             return Name.fromString(sb.toString(), inaddr);
  31.          } catch (TextParseException var3) {
  32.             throw new IllegalStateException("name cannot be invalid");
  33.          }
  34.       }
  35.    }
  36.  
  37.    public static Name fromAddress(InetAddress addr) {
  38.       byte[] bytes = addr.getAddress();
  39.       int[] array = new int[4];
  40.  
  41.       for(int i = 0; i < 4; ++i) {
  42.          array[i] = bytes[i] & 255;
  43.       }
  44.  
  45.       return fromAddress(array);
  46.    }
  47.  
  48.    public static Name fromAddress(String addr) throws UnknownHostException {
  49.       int[] array = Address.toArray(addr);
  50.       if (array == null) {
  51.          throw new UnknownHostException("Invalid IP address");
  52.       } else {
  53.          return fromAddress(array);
  54.       }
  55.    }
  56. }
  57.