在网上找到的IP地址与整型之间的转化,另外加上一个自己写的根据IP和子网掩码获取IP网段的方法
package cn.cloudex.util;
public class IPUtil {
//十进制ip地址转化为长整型(59.225.0.0-->1004601344L)
public static long getStringIpToLong(String ip) {
String[] ips = ip.split("\\.");
long num = 16777216L*Long.parseLong(ips[0]) + 65536L*Long.parseLong(ips[1]) + 256*Long.parseLong(ips[2]) + Long.parseLong(ips[3]);
return num;
}
//长整型转化为十进制ip地址(1004601344L-->59.225.0.0)
public static String getLongIpToString(long ipLong) {
long mask[] = {0x000000FF,0x0000FF00,0x00FF0000,0xFF000000};
long num = 0;
StringBuffer ipInfo = new StringBuffer();
for(int i=0;i<4;i++){
num = (ipLong & mask[i])>>(i*8);
if(i>0) ipInfo.insert(0,".");
ipInfo.insert(0,Long.toString(num,10));
}
return ipInfo.toString();
}
//根据IP和子网掩码获取IP网段
public static String getIPStartAndEnd(String ip,String mask){
long s1 = getStringIpToLong(ip);
long s2 = getStringIpToLong(mask);
String erj = Long.toBinaryString(s2);
long s3 = s1 & s2;
long start = getStringIpToLong(getLongIpToString(s3));
String wl = Long.toBinaryString(s3);
if(wl.length()<32) {
int le = 32-wl.length();
for(int i=0; i<le; i++) {
wl = "0"+wl;
}
}
String gbl = wl.substring(0,erj.indexOf("0"))+wl.substring(erj.indexOf("0"),wl.length()).replace("0", "1");
long s4 = Long.parseLong(gbl, 2);
long end = getStringIpToLong(getLongIpToString(s4));
return start+"|"+end;
}
public static void main(String[]arg) {
System.out.println(IPUtil.getIPStartAndEnd("59.224.192.0", "255.255.192.0"));
System.out.println(IPUtil.getStringIpToLong("1.12.0.0"));
System.out.println(IPUtil.getLongIpToString(1004584960L));
System.out.println(IPUtil.getLongIpToString(1004601343L));
}
}
分享到:
相关推荐
Java ip 地址排序Java ip 地址排序Java ip 地址排序Java ip 地址排序
JAVA中IP和整数相互转化
该工具是实现IP地址转换整形的工具,也可以把整形转化为ip地址
java 获取计算机名与IP地址 java 获取计算机名与IP地址 java 获取计算机名与IP地址
主要介绍了java IP地址网段计算的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了java实现根据ip地址获取地理位置的代码分享,本文中使用的是QQ在线接口,也可以使用新浪、淘宝等提供的在线接口,需要的朋友可以参考下
Java正则表达式验证IP地址是指使用Java语言中的正则表达式来验证IP地址是否符合标准。IP地址是指在网络通信中用来标识设备的地址,它是一种逻辑地址,通过它可以找到网络中的设备。在Java中,可以使用正则表达式来...
NULL 博文链接:https://fanshuyao.iteye.com/blog/2436489
ip查询归属地收藏 Java 查询IP地址
该资源是winform+c#桌面程序,完成ip地址和整形之间相互转化的功能。
根据Ip地址获取归属地,需要用到ip库,我这里用到的是QQWry.dat
java 获取IP地址 ...............................................................................
java根据ip获取国家、地区名称,附带ip地址库
本类测试java通过ip地址返回ip所在地测试类源码。
通过输入的ip地址,读取纯真ip数据库,获取该IP地址所在地区
通过IP地址查询所在省市,基于qqwry.dat(可通过百度下载最新qqwry.dat文件来更新)。 代码已经简化过,直接调用静态方法即可返回地区信息(传入IP为参数)。 使用时只需要把唯一工具类:IpLocationTool.java(无...
String remoteHost=request.getRemoteHost(); log.info("Request from host:"+remoteHost); //判断客户计算机IP地址是否合法,以127开头的表示不合法,禁止访问
java读取纯真IP地址数据库 使用java读取纯真ip数据库,里面带一个最近更新的ip库,想要最新的,可以拿名字百度
输入IP地址及掩码(如24),计算出地址范围 1、计算出掩码指定的IP地址个数 2、分割IP地址 3、将10.0.0.0形式的ip地址转换成10进制整数 4、将10进制整数形式转换成127.0.0.1形式的IP地址
平时我们会经常遇到对IP地址的检测,检验IP地址是否合理。当然你可以通过其他程序代码去实现,这里用正则表达式去实现更为简单。