java-ip的string和long转换

package p1;
import java.net.InetAddress;
public class testIp {
    
    public static void main(String[] args) throws Exception
    {
        
        System.out.println(convertIPToLong("124.74.26.54"));
        System.out.println(convertLongToIP(2085231158));
        
    }
    
    public static long convertIPToLong(String ip) throws Exception
    {
        
        InetAddress IPAddr = InetAddress.getByName(ip);
        if(IPAddr == null)
            return 0L;
        byte bytes[] = IPAddr.getAddress();
        if(bytes.length < 4)
        {
            return 0L;
        } 
        else
        {
            long l0 = bytes[0] & 255;
            long l1 = bytes[1] & 255;
            long l2 = bytes[2] & 255;
            long l3 = bytes[3] & 255;
            return l0 << 24 | l1 << 16 | l2 << 8 | l3;
        }
    }
    
    public static String convertLongToIP(long ipInJava) throws Exception
    {
        
        byte bytes[] = new byte[4];
        bytes[0] = (byte)(int)((ipInJava >> 24) % 256L);
        bytes[1] = (byte)(int)((ipInJava >> 16) % 256L);
        bytes[2] = (byte)(int)((ipInJava >> 8) % 256L);
        bytes[3] = (byte)(int)(ipInJava % 256L);
        InetAddress IPAddr = InetAddress.getByAddress(bytes);
        return IPAddr.getHostAddress();
  }
    
}
时间: 2024-11-11 02:33:51

java-ip的string和long转换的相关文章

Java基础(31):String的大小写转换、分离成数组、==与equals()的区别

继续来看 String 类常用的方法,如下代码所示: 运行结果: 那么,“==” 和 equals() 有什么区别呢? ==: 判断两个字符串在内存中首地址是否相同,即判断是否是同一个字符串对象 equals(): 比较存储在两个字符串对象中的内容是否一致 PS:字节是计算机存储信息的基本单位,1 个字节等于 8 位, gbk 编码中 1 个汉字字符存储需要 2 个字节,1 个英文字符存储需要 1 个字节.所以我们看到上面的程序运行结果中,每个汉字对应两个字节值,如“学”对应 “-47 -89”

3.6 java基础总结①包装类,基本数据类型,String相互间转换

包装类,基本数据类型,String相互间转换 每个基本数据类型都有相对应的包装类型 包装类,基本数据类型,String相互间转换,这三者间的转换时很重要的: 一.String 转其他 String → 包装类型1.Integer(String str)调用包装类的带String参构造 String → 基本数据类型☆String → int调用包装类的parseInt方法 二.包装类转其他 → String调用包装类对象的ToString方法 → 基本类型①调用包装类的XXXValue方法包装类

java String和Date转换

SimpleDateFormat函数语法:    G 年代标志符  y 年  M 月  d 日  h 时 在上午或下午 (1~12)  H 时 在一天中 (0~23)  m 分  s 秒  S 毫秒  E 星期  D 一年中的第几天  F 一月中第几个星期几  w 一年中第几个星期  W 一月中第几个星期  a 上午 / 下午 标记符   k 时 在一天中 (1~24)  K 时 在上午或下午 (0~11)  z 时区 */ DateFormat format1 = new SimpleDate

Java数据类型中String、Integer、int相互间的转换

1.Integer转换成int的方法 Integer i;  int k = i.intValue(); 即Integer.intValue(); 2.int转换成Integer int i; Integer it = new Integer(i); 3.String转换成int的方法 String str = "10";   Integer it = new Interger(str); int i = it.intValue(); 即:int i = Integer.intValu

(备忘)Java数据类型中String、Integer、int相互间的转换

1.Integer转换成int的方法 Integer i; int k = i.intValue();即Integer.intValue(); 2.int转换成Integer int i; Integer it = new Integer(i); 3.String转换成int的方法 String str = "10"; Integer it = new Interger(str); int i = it.intValue(); 即:int i = Integer.intValue(st

Java 带分隔字符串、字符串数组和 ArrayList&lt;String&gt; 之间的转换

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 一.先来认识一下标题说的这三件东西,也许描述的不清楚,但有了下面的例子,就不会有歧义了 1.带分隔字符串是这样的: String seperate

java Date和String转换总结

java.util.Date和String类型的转换是非常常用的,现在总结一下: 1. Date转换为String //Date --->String DateFormat dft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date dateNow = new Date(System.currentTimeMillis()); String now = dft.format(dateNow); System.out.printl

Java基础知识强化35:String类之String类的转换功能

1. String类的转换功能 byte[] getBytes() char[] toCharArray() static String valueOf(char[] chs) static String valueOf(int i ) String toLowerCase() String toUpperCase() String concat(String str) 2. 案例: 1 package cn.itcast_05; 2 3 /* 4 * String的转换功能: 5 * byte

Java线程:线程状态的转换

Java线程:线程状态的转换 一.线程状态 线程的状态转换是线程控制的基础.线程状态总的可分为五大状态:分别是生.死.可运行.运行.等待/阻塞.用一个图来描述如下: 1.新状态:线程对象已经创建,还没有在其上调用start()方法. 2.可运行状态:当线程有资格运行,但调度程序还没有把它选定为运行线程时线程所处的状态.当start()方法调用时,线程首先进入可运行状态.在线程运行之后或者从阻塞.等待或睡眠状态回来后,也返回到可运行状态. 3.运行状态:线程调度程序从可运行池中选择一个线程作为当前

Java中数据类型及其之间的转换

Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种: 1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits). 2)float长度数据类型有:单精度(32bits float).双精度(64bits double),JAVA中将小数默认为double类型,若要定义float需在数据后面用f声明: 3)boolean类型变量的取值有:ture.false 4)char数据类型有:unicode字符,16位 对