IP地址转换成Long型数字的算法

在应用程序开发中,涉及到IP地址的存储,大部分开发人员都将其存为String(或文本类型)。能否将固定格式为m.n.x.y的IP地址转换成 Long型的数字呢?答案是肯定的。在数据库层面,可以直接将结果设置成表的主键,避免IP地址的重复,因为是主键,也就是表的索引了,数据库查找时会更 快。

对于格式为m.n.x.y的IP地址,转换成Long型数字的算法如下:

  1. Long  =  * 256 * 256 * m +
  2. y

使用Java语言,则这样实现:

  1. privatestatic);
  2. *  *  * Long.parseLong(ip[]) +
  3. *  * Long.parseLong(ip[]) +
  4. * Long.parseLong(ip[]) +
  5. ]);
  6. return}

那么,对于已知的一个表示IP地址的Long型数字,又该如何将其还原成String(字符型)的IP地址呢?算法也很简单,整除和取余。使用Java语言,则这样实现:

  1. privatestaticlong;
  2. long *  * );
  3. long *  * * m - y) / ( * );
  4. long *  * * m -  *  *n - y) / ;
  5. return + n +  + x +  + y;
  6. }

算法测试:

  1. publicstaticvoid);
  2. }

结果:

183.62.169.146

上一篇:获取 AlertDialog自定义的布局 的控件


下一篇:【转】MYSQL入门学习之十:视图的基本操作