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));
   }

            

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

有次用到了IP地址int与str的转换,不想用socket的库函数,发现网上很多实现都挺啰嗦的,自己实现了一个,记录下,大小端序可以根据实际使用进一步做转换。 /* ip 字符串合法性由调用者保...
  • thisinnocence
  • thisinnocence
  • 2017年03月13日 23:10
  • 1145

String类型IP转成int类型

//把String类型的Ip地址转换成int类型     public static int lookupHost(String hostname)     {         InetAd...
  • liu149339750
  • liu149339750
  • 2012年04月16日 13:02
  • 4096

IP 地址和 Int 型之间的转换

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

IP地址转换:int转string

实际编程中,IP地址多用整型来表示,如int、unsigned int等。整型对于机器是友好的,对于编码人员就不那么友好了,毕竟我们还是喜欢用点分格式的IP地址,下面就写了个简单的小方法,供参考、使用...
  • piedaocaoren
  • piedaocaoren
  • 2018年03月10日 10:35
  • 25

java将IP地址转换为数字以及逆向转换(位运算和0xFF的使用)第二季

原文: http://www.mkyong.com/java/java-convert-ip-address-to-decimal-number/ 来自同一个博客。 IP转为数字...
  • hardwin
  • hardwin
  • 2013年12月11日 14:44
  • 12996

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

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

java ip地址转换成int

数据库存放,提高数据库性能我们将字符串IP转换成int类型保存! 代码如下: // 将127.0.0.1形式的IP地址转换成十进制整数,这里没有进行任何错误处理 public static...
  • clypm
  • clypm
  • 2015年04月02日 14:47
  • 1658

SeniorUI01_UI绘制流程分析(源码级分析)

源码级分析:读源码一定要有线索:要带着自己的疑问来读源码(围绕目标找方法)#1 从setContenView开始,了解view的加载过程疑问:setContentView到底做了些什么,为什么调用后就...
  • baopengjian
  • baopengjian
  • 2017年05月08日 09:51
  • 278

HashMap的数据结构---示意图和结构的理解

1.HashMap的数据结构   数组的特点是:寻址容易,插入和删除困难;而链表的特点是:寻址困难,插入和删除容易。那么我们能不能综合两者的特性,做出一种寻址容易,插入删除也容易的数据结构?...
  • qq_27093465
  • qq_27093465
  • 2016年08月15日 11:41
  • 3215

ip地址与int类型的转换

unsigned long ip_string2int(const std::string& str_ip) { //IP转化为数值 //没有格式检查 //返回值就是结...
  • flyfangyanwei
  • flyfangyanwei
  • 2015年12月25日 19:32
  • 591
收藏助手
不良信息举报
您举报文章:IP类型转换(String和int互相转换)
举报原因:
原因补充:

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