//ip2longimport java.net.*;public class test {
 public static int str2Ip(String ip) throws UnknownHostException { 
        InetAddress address = InetAddress.getByName(ip); 
        byte[] bytes = address.getAddress(); 
        int a, b, c, d; 
        a = byte2int(bytes[0]); 
        b = byte2int(bytes[1]); 
        c = byte2int(bytes[2]); 
        d = byte2int(bytes[3]); 
        int result = (a << 24) | (b << 16) | (c << 8) | d; 
        return result; 
    } 
  public static int byte2int(byte b) { 
        int l = b & 0x07f; 
        if (b < 0) { 
            l |= 0x80; 
        } 
        return l; 
    } 
public static long ip2long(String ip) throws UnknownHostException { 
        int ipNum = str2Ip(ip); 
        return int2long(ipNum); 
    }  public static long int2long(int i) { 
        long l = i & 0x7fffffffL; 
        if (i < 0) { 
            l |= 0x080000000L; 
        } 
        return l; 
    }  public static void main(String[] args) throws Exception {
System.out.println(ip2long("192.168.0.111"));

}}

解决方案 »

  1.   

    我还没写完你就结帖了,^_^.以下是全部两个函数的程序:import java.net.*;public class test {
     public static int str2Ip(String ip) throws UnknownHostException { 
            InetAddress address = InetAddress.getByName(ip); 
            byte[] bytes = address.getAddress(); 
            int a, b, c, d; 
            a = byte2int(bytes[0]); 
            b = byte2int(bytes[1]); 
            c = byte2int(bytes[2]); 
            d = byte2int(bytes[3]); 
            int result = (a << 24) | (b << 16) | (c << 8) | d; 
            return result; 
        } 
      public static int byte2int(byte b) { 
            int l = b & 0x07f; 
            if (b < 0) { 
                l |= 0x80; 
            } 
            return l; 
        } 
    public static long ip2long(String ip) throws UnknownHostException { 
            int ipNum = str2Ip(ip); 
            return int2long(ipNum); 
        }  public static long int2long(int i) { 
            long l = i & 0x7fffffffL; 
            if (i < 0) { 
                l |= 0x080000000L; 
            } 
            return l; 
        } 
     public static String long2ip(long ip) {
      int [] b=new int[4] ;
      b[0] = (int)((ip >> 24) & 0xff);
      b[1] = (int)((ip >> 16) & 0xff);
      b[2] = (int)((ip >> 8) & 0xff);
      b[3] = (int)(ip & 0xff);
      String x;
        Integer p;
        p=new Integer(0);
        x=p.toString(b[0])+"."+p.toString(b[1])+"."+p.toString(b[2])+"."+p.toString(b[3]); 
     
      return x; 
     
     } public static void main(String[] args) throws Exception {
    long ip=ip2long("192.168.0.111");
    System.out.println(ip);
    System.out.println(long2ip(ip));

    }}