java IP地址与数字之间的转换

 /**
     * 字符串ip转换为long
     * @param 字符串ip
     * @return
     */
    public static long getStringIpToLong(String ip) { 
     
        String[] ips = ip.split("[.]"); 
        long num =  16777216L*Long.parseLong(ips[0]) + 65536L*Long.parseLong(ips[1]) + 256*Long.parseLong(ips[2]) + Long.parseLong(ips[3]); 
        return num; 
    } 
     
    /**
     * 长整型ip转换为string
     * @param long型ip
     * @return
     */ 
    public static String getLongIpToString(long ipLong) {  
       
        long mask[] = {0x000000FF,0x0000FF00,0x00FF0000,0xFF000000}; 
        long num = 0; 
        StringBuffer ipInfo = new StringBuffer(); 
        for(int i=0;i<4;i++){ 
            num = (ipLong & mask[i])>>(i*8); 
            if(i>0) ipInfo.insert(0,"."); 
            ipInfo.insert(0,Long.toString(num,10)); 
        } 
        return ipInfo.toString(); 
    } 
    /**
    * @param ip
    * @return 长整形数值转化为ip地址
    * @author wenc
    */
    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) {
 test4 t = new test4();
 System.out.println("转换的long值为:"+t.getStringIpToLong("192.168.4.5"));
 System.out.println("转换的ip地址为:"+t.long2ip(Long.valueOf("-101058055")));
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值