`
zds625
  • 浏览: 10982 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类

java中IP地址与整型的相互转化

    博客分类:
  • Java
阅读更多
在网上找到的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 地址排序

    java IP地址工具类,java IP地址获取,java获取客户端IP地址

    在Java编程中,获取IP地址是一项常见的任务,特别是在网络编程和服务器开发中。这个"java IP地址工具类"是为了解决这个问题而设计的。它提供了便捷的方法来获取和处理IP地址,尤其对于获取客户端IP地址在Web应用中至...

    java IP地址网段计算的示例代码

    Java IP地址网段计算是网络编程中的一个重要概念,它可以帮助开发者计算出某个IP地址的网段信息,包括网段的起始IP、结束IP和子网掩码等。在Java语言中,可以使用各种算法和技巧来实现IP地址网段计算。下面是一个...

    IP地址转换整形工具

    本文将详细解析"IP地址转换整形工具"及其相关知识点,旨在帮助用户理解和掌握IP地址与整数之间的转换技巧。 首先,我们要明白IP地址(Internet Protocol Address)是由32位二进制组成的,通常以点分十进制的形式...

    java获取ip地址

    - 如果输入的URL有效,则将其IP地址转换为字符串形式,并显示在标签(`jl`)中。 - 如果输入的URL无效或者无法解析,则会抛出`UnknownHostException`异常,此时程序会捕获这个异常并打印堆栈跟踪。 - 用户点击...

    Java编程IP地址和数字相互转换代码示例

    Java中IP地址和数字相互转换可以通过使用bitwise操作来实现。以下是Java中IP地址和数字相互转换的代码示例: IP转为数字(第二种算法。用左移、按位或实现。效率更高。): ```java public long ipToLong(String ip...

    java 获取 IP 地址

    在Java编程语言中,获取IP地址是一项常见的任务,特别是在网络编程和服务器开发中。这个程序虽然界面简单,但核心功能强大,它能够帮助开发者获取指定域名对应的IP地址。以下是关于这个话题的一些详细知识点: 1. *...

    java实现根据ip地址获取地理位置的代码分享

    在Java编程中,有时我们需要根据用户的IP地址获取其所在地理位置的信息,这在网站统计、个性化推荐或者安全防护等方面都有重要作用。本篇文章将分享一个利用Java实现根据IP地址获取地理位置的简单示例,主要使用了QQ...

    ip查询归属地收藏 Java 查询IP地址

    IP地址范围读取与转换 代码中的`ipBegin`和`ipEnd`变量分别表示数据库中记录的起始和结束IP地址。通过`byteArrayToLong`方法将读取到的字节数据转换为长整型数字,便于比较和计算。这里采用了小端序(little-...

    java根据ip获取国家、地区名称,附带ip地址库

    在Java编程中,根据IP地址获取国家和地区名称是一项常见的需求,尤其在数据分析、网络监控或者用户定位等场景中。这个话题涉及到的主要知识点包括IP地址处理、数据库查询以及使用第三方库。 首先,IP地址是一个32位...

    java 获取计算机名与IP地址

    在Java编程语言中,获取计算机名和IP地址是常见的网络编程任务。这主要涉及到Java的`java.net`包,该包提供了多种类和接口来处理网络相关的操作。下面将详细介绍如何使用Java获取计算机名和IP地址。 首先,我们来看...

    ip地址管理器用java语言实现

    例如,我们可以创建一个IP地址列表,然后通过遍历并比较输入IP与列表中的IP进行匹配,以决定是否允许通信。对于更复杂的过滤规则,可能需要用到数据结构(如树或散列表)来提高查询效率。 开通和关闭IP地址的操作...

    Java获取ip所在地区

    在IT行业中,网络编程是不可或缺的一部分,而与之相关的任务之一就是识别和处理IP地址。在Java编程中,我们有时需要获取一个IP地址所对应的具体地理位置,例如省份、城市等信息。这通常需要借助特定的IP数据库,如...

    Asp.net C# IP地址整形相互转化源代码

    IP地址通常表示为四段式的点分十进制形式,例如 "192.168.1.1",而整形数值则是将IP地址转换成一个32位无符号整数,便于计算和存储。在C#中,我们可以使用内置的方法或自定义函数来实现这两种形式的互转。 1. **IP...

    java正则表达式验证IP地址

    Java正则表达式验证IP地址是指使用Java语言中的正则表达式来验证IP地址是否符合标准。IP地址是指在网络通信中用来标识设备的地址,它是一种逻辑地址,通过它可以找到网络中的设备。在Java中,可以使用正则表达式来...

    java根据ip反查省市县地址

    在Java编程中,根据IP地址反查对应的省市县地址是一项常见的需求,这通常涉及到网络编程和地理信息系统(GIS)的应用。下面将详细讲解如何利用Java实现这一功能。 首先,我们需要理解IP地址的基本概念。IP地址是由...

    java ip地址段计算

    输入IP地址及掩码(如24),计算出地址范围 1、计算出掩码指定的IP地址个数 2、分割IP地址 3、将10.0.0.0形式的ip地址转换成10进制整数 4、将10进制整数形式转换成127.0.0.1形式的IP地址

    JAVA发送邮件和获取ip地址

    在Java编程中,发送邮件和获取IP地址是两个常见的任务,尤其在系统集成、通知服务或者数据通信中。下面将详细讲解这两个知识点。 首先,让我们来看看如何使用Java发送邮件。在Java中,我们通常使用JavaMail API来...

    根据IP地址获取经纬度

    标题中的“根据IP地址获取经纬度”是指在Java编程环境下,通过特定的库或API来实现从IP地址解析出地理位置的经纬度坐标。这通常涉及到网络编程和地理信息系统(GIS)的技术。描述中提到的Java工程是实现这个功能的一...

Global site tag (gtag.js) - Google Analytics