Convert IP address to integer and back

/**
     * Convert an IPv4 to a long number.
     * 
     * @param ip
     *            IPv4
     * @return a long number represents an IPv4
     */
    public static long ip2Long(String ip) {
        long num = 0;
        String[] ipArray = ip.split("\\.");
        for (int i = 0; i < ipArray.length; i++) {
            int power = 3 - i;
            num += (Integer.parseInt(ipArray[i]) % 256 * Math.pow(256, power));
        }
        return num;
    }

    /**
     * Convert a long number to an IPv4
     * 
     * @param num
     *            a long number represents an IPv4
     * @return an IPv4
     */
    public static String long2Ip(long num) {
        return ((num >> 24) & 0xFF) + "." + ((num >> 16) & 0xFF) + "."
                + ((num >> 8) & 0xFF) + "." + (num & 0xFF);
    }

posted on 2012-09-05 23:02  Xingning Ou  阅读(298)  评论(0编辑  收藏  举报

导航