IP类型转换(String和int互相转换)

原创 2011年01月10日 11:09:00

 //将127.0.0.1形式的IP地址转换成十进制整数,这里没有进行任何错误处理  
     public static long ipToLong(String strIp){  
         long[] ip = new long[4];  
         //先找到IP地址字符串中.的位置  
         int position1 = strIp.indexOf(".");  
         int position2 = strIp.indexOf(".", position1 + 1);  
         int position3 = strIp.indexOf(".", position2 + 1);  
         //将每个.之间的字符串转换成整型  
         ip[0] = Long.parseLong(strIp.substring(0, position1));  
         ip[1] = Long.parseLong(strIp.substring(position1+1, position2));  
         ip[2] = Long.parseLong(strIp.substring(position2+1, position3));  
         ip[3] = Long.parseLong(strIp.substring(position3+1));  
         return (ip[0] << 24) + (ip[1] << 16) + (ip[2] << 8) + ip[3];  
     }  
       
     //将十进制整数形式转换成127.0.0.1形式的ip地址  
     public static String longToIP(long longIp){  
         StringBuffer sb = new StringBuffer("");  
         //直接右移24位  
         sb.append(String.valueOf((longIp >>> 24)));  
         sb.append(".");  
         //将高8位置0,然后右移16位  
         sb.append(String.valueOf((longIp & 0x00FFFFFF) >>> 16));  
         sb.append(".");  
         //将高16位置0,然后右移8位  
         sb.append(String.valueOf((longIp & 0x0000FFFF) >>> 8));  
         sb.append(".");  
         //将高24位置0  
         sb.append(String.valueOf((longIp & 0x000000FF)));  
         return sb.toString();  
     } 

 

 

public static void main(String[] args) throws ParseException {

String[] ipStrs = {"192.168.54.21","192.168.54.15","192.168.54.17","192.168.54.18","192.168.54.19","192.168.54.31"};
         for (int i = 0; i < ipStrs.length; i++) {
    String ipStri = ipStrs[i];
    long longIp = ipToLong(ipStri);  
          System.out.println("192.168.0.1 的整数形式为:" + longIp);  
          System.out.println("整数" + longIp + "转化成字符串IP地址:" 
                  + longToIP(longIp));
   }

            

相关文章推荐

String类型IP转成int类型

//把String类型的Ip地址转换成int类型     public static int lookupHost(String hostname)     {         InetAd...

小练习 - IP地址int与string相互转换C实现

有次用到了IP地址与str的转换,不想用socket的库函数,发现网上很多实现都挺啰嗦的,自己实现一个记录下。/* ip 字符串合法性由调用者保证 */ unsigned int ip_str2int...

IP地址字符串与整数的互相转化

/* Name: IP字符串与整数的互相转化 Author: Unimen Date: 04/10/2011 21:32 */ /* 思路: 1、由字符串转整数,由高位挨个读取就行,每...
  • Unimen
  • Unimen
  • 2011年10月04日 21:41
  • 5569

IP 地址和 Int 型之间的转换

一、基本知识点    IP ——> 整数: 把IP地址转化为字节数组通过左移位( 整数 ——> IP: 将整数值进行右移位操作(>>>),右移24位,再进行与操作符(...
  • leon90dm
  • leon90dm
  • 2012年09月22日 09:34
  • 10500

【Java基础】String,StringBuffer,StringBuilder之间的区别

对于这三个类,先总体来理解一下:对String,你创建了一个String,你能通过set方法改变它的长度length吗?显然是不行的!但 StringBuffer 可以!StringBuilder 类...

Adapter及其一些例子

为了更好的理解Adapter我们这里先看一下接口的关系
  • kluing
  • kluing
  • 2014年06月03日 16:28
  • 665

关于JAVA中int、String的类型转换

  • 2013年07月08日 00:38
  • 824B
  • 下载

string, char*, int类型转换 , c++强制转化

一、C++代码 以下是常用的几种类型互相之间的转换 string 转 int .............................. char* 转 int #include int ...
  • ttguess
  • ttguess
  • 2012年03月14日 17:17
  • 6239

C++中int、string等常见类型转换

初学C++,总结下在实践中对于几种常见内置类型转换的理解吧。   1、int型与string型的互相转换 最佳实践: int型转string型   void int2str(const i...

C++ 中int,char,string,CString类型转换(一)

C++ 中int,char,string,CString类型转换(一) 1. c++中string到int的转换 1) 在C标准库里面,使用atoi: #include #in...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IP类型转换(String和int互相转换)
举报原因:
原因补充:

(最多只允许输入30个字)