怎样将IP地址保存到数据库? 工做上遇到的问题!! 保存下来以备后查:
这个方法是将一个IP地址好比:192.168.0.254 做为参数传递下面的方法,该方法返回3232235774 这个long类型的值能够存储到数据库。
public
static
long ip2num(String ip) {
long ipNum = 0;
try {
if (ip !=
null) {
String ips[] = ip.split(
"\\.");
for (
int i = 0; i < ips.length; i++) {
int k = Integer.parseInt(ips[i]);
ipNum = ipNum + k * (1L << ((3 - i) * 8));
}
}
}
catch (Exception e) {
}
return ipNum;
}
下面是转换的方法,也就是将 232235774 在转换成一个咱们能直接看懂的IP地址,具体的方法以下:
public
static String num2ip(
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();
}
直接将 3232235774 参数传入方法,返回IP地址:192.168.0.254