标签:答案 进制 network detail 类型 package tail 设置 ipad
在应用程序开发中,涉及到IP地址的存储,大部分开发人员都将其存为String(或文本类型)。能否将固定格式为m.n.x.y的IP地址转换成Long型的数字呢?答案是肯定的。在数据库层面,可以直接将结果设置成表的主键,避免IP地址的重复,因为是主键,也就是表的索引了,数据库查找时会更快。
对于格式为m.n.x.y的IP地址,转换成Long型数字的算法如下:
package com.mxf.date0725;
public class IpTransform {
public static void main(String[] args) {
String ipAddress = "183.62.169.146";
long ip = ipToNumber(ipAddress);
System.out.println("ip = " + ip);
}
// <summary>
/// 将127.0.0.1形式的IP地址转换成十进制整数
/// </summary>
/// <param name="strIp"></param>
/// <returns></returns>
private static Long ipToNumber(String ip) {
Long ips = 0L;
String[] numbers = ip.split("\\.");
// 等价上面
for (int i = 0; i < 4; ++i) {
ips = ips << 8 | Integer.parseInt(numbers[i]);
}
return ips;
}
}
标签:答案 进制 network detail 类型 package tail 设置 ipad
原文地址:http://www.cnblogs.com/snowwhite/p/7237258.html