在数据库里面存有String 型的IP地址 ,通过应用程序取出后,里转换成可以用于TCP/IP连接使用的IP地址,怎么转换?要用什么函数或方法?请各位路过的大侠指点一下,小弟不胜感激

解决方案 »

  1.   


    import java.util.StringTokenizer;/**
     * <p>Title: </p>
     * <p>Description: </p>
     * <p>Copyright: Copyright (c) 2005</p>
     * <p>Company: </p>
     * @author not attributable
     * @version 1.0
     */public class IPFormat {
      public IPFormat() {
      }  public static long converToLongIp(String strIp) throws
          IllegalArgumentException {    long retLong = 0;
        int[] intIps = convertToIntIps(strIp);
        int len = intIps.length;    for (int i = 0; i < len; i++) {
          retLong <<= 8;
          retLong = retLong + intIps[i];
        }    return retLong;
      }  public static int[] convertToIntIps(String argIpAddress) throws
          IllegalArgumentException {
        StringTokenizer st = new StringTokenizer(argIpAddress, ".");
        int counts = st.countTokens();
        if (counts != 4)
          throw new IllegalArgumentException("Invalid Ip format");    int[] retIps = new int[counts];
        try {      String[] ss = new String[counts];
          for (int i = 0; i < counts; i++) {
            ss[i] = st.nextToken();        int intIp = Integer.parseInt(ss[i]);
            if (intIp > 255) {
              throw new IllegalArgumentException("Invalid Ip Format");
            }
            retIps[i] = intIp;
          }    }
        catch (Exception e) {
          throw new IllegalArgumentException("Invalid Ip format");
        }    return retIps;
      }  public static void main(String args[]) {
        converToLongIp("10.1.0.2");
      }
    }
      

  2.   

    package org.jr.net;/**
     * <p>Copyright: Copyright (c) 2002-2003</p>
     * <p>Company: JavaResearch(http://www.javaresearch.org)</p>
     * <p>最后更新日期:2003年3月4日
     * @author Cherami
     */import java.net.*;/**
     * IP地址相关的工具类,封装常用的IP工具方法。
     * @since  0.12
     */public class IPUtil {
      /**
       * 非法IP地址常量。
       * @since  0.12
       */
      public static final String INVALID_IP = "0.0.0.0";
      /**
       * 未知主机名常量。
       * @since  0.12
       */
      public static final String UNKNOWN_HOST = "";
      /**
       * 私有构造方法,防止类的实例化,因为工具类不需要实例化。
       */
      private IPUtil() {
      }  /**
       * 根据主机名得到IP地址字符串。
       * @param hostName 要查找地址的主机名
       * @return 对应主机的IP地址,主机名未知或者非法时返回INVALID_IP。
       * @since  0.12
       */
      public static String getByName(String hostName) {
        try {
          InetAddress inet = InetAddress.getByName(hostName);
          return inet.getHostAddress();
        }
        catch (UnknownHostException e) {
          return INVALID_IP;
        }
      }  /**
       * 根据IP地址得到主机名。
       * @param ip 要查找主界面的IP地址
       * @return 对应IP的主机名,IP地址未知时返回UNKNOWN_HOST,IP地址未知也可能是网络问题造成的。
       * @since  0.12
       */
      public static String getHostName(String ip) {
        try {
          InetAddress inet = InetAddress.getByName(ip);
          return inet.getHostName();
        }
        catch (UnknownHostException e) {
          return UNKNOWN_HOST;
        }
      }
    }
      

  3.   

    package org.jr.net;/**
     * <p>Copyright: Copyright (c) 2002-2003</p>
     * <p>Company: JavaResearch(http://www.javaresearch.org)</p>
     * <p>最后更新日期:2003年3月4日
     * @author Cherami
     */import java.net.*;/**
     * IP地址相关的工具类,封装常用的IP工具方法。
     * @since  0.12
     */public class IPUtil {
      /**
       * 非法IP地址常量。
       * @since  0.12
       */
      public static final String INVALID_IP = "0.0.0.0";
      /**
       * 未知主机名常量。
       * @since  0.12
       */
      public static final String UNKNOWN_HOST = "";
      /**
       * 私有构造方法,防止类的实例化,因为工具类不需要实例化。
       */
      private IPUtil() {
      }  /**
       * 根据主机名得到IP地址字符串。
       * @param hostName 要查找地址的主机名
       * @return 对应主机的IP地址,主机名未知或者非法时返回INVALID_IP。
       * @since  0.12
       */
      public static String getByName(String hostName) {
        try {
          InetAddress inet = InetAddress.getByName(hostName);
          return inet.getHostAddress();
        }
        catch (UnknownHostException e) {
          return INVALID_IP;
        }
      }  /**
       * 根据IP地址得到主机名。
       * @param ip 要查找主界面的IP地址
       * @return 对应IP的主机名,IP地址未知时返回UNKNOWN_HOST,IP地址未知也可能是网络问题造成的。
       * @since  0.12
       */
      public static String getHostName(String ip) {
        try {
          InetAddress inet = InetAddress.getByName(ip);
          return inet.getHostName();
        }
        catch (UnknownHostException e) {
          return UNKNOWN_HOST;
        }
      }
    }