`
ouyangfeng521
  • 浏览: 250954 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

java 判断ip网段代码

 
阅读更多

 

package com.test;

public class IpTest {

	/**
	 * 判断IP是否在指定范围;
	 */
	boolean i;

	public static boolean ipIsValid(String ipSection, String ip) {
		if (ipSection == null)
			throw new NullPointerException("IP段不能为空!");
		if (ip == null)
			throw new NullPointerException("IP不能为空!");
		ipSection = ipSection.trim();
		ip = ip.trim();
		final String REGX_IP = "((25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)\\.){3}(25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)";
		final String REGX_IPB = REGX_IP + "\\-" + REGX_IP;
		if (!ipSection.matches(REGX_IPB) || !ip.matches(REGX_IP))
			return false;
		int idx = ipSection.indexOf('-');
		String[] sips = ipSection.substring(0, idx).split("\\.");
		String[] sipe = ipSection.substring(idx + 1).split("\\.");
		String[] sipt = ip.split("\\.");
		long ips = 0L, ipe = 0L, ipt = 0L;
		for (int i = 0; i < 4; ++i) {
			ips = ips << 8 | Integer.parseInt(sips[i]);
			ipe = ipe << 8 | Integer.parseInt(sipe[i]);
			ipt = ipt << 8 | Integer.parseInt(sipt[i]);
		}
		if (ips > ipe) {
			long t = ips;
			ips = ipe;
			ipe = t;
		}
		return ips <= ipt && ipt <= ipe;
	}

	public static void main(String[] args) {
		if (ipIsValid("102.168.1.1-192.168.1.100", "192.168.1.54")) {
			System.out.println("ip属于该网段");
		} else
			System.out.println("ip不属于该网段");
	}

}
分享到:
评论
2 楼 zhuyijian135757 2014-04-16  
ipIsValid("102.168.10.1-192.168.10.100", "172.168.10.101")

结果是 同一网段
1 楼 shangql 2014-03-04  
很好用,感谢楼主分享

相关推荐

    ip工具类(用于判断IP是否在网段内,给定网段判断IP的范围)

    ip工具类(用于判断IP是否在网段内,给定网段判断IP的范围)

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

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

    shell 判断ip同网段

    shell 判断输入的ip是否和本机的ip同网段 包含两种实现方法

    java的ip常用工具类

    此工具类包含根据ip和掩码(cidr)计算网段 判断ip是否在网段内 判断是否是ip ip转long long类型的ip转string

    判断两个ip号是否在同一网段

    本话题主要聚焦于如何利用C#来判断两个IP地址是否处于同一网段,这对于网络通信和数据传输的优化具有实际意义。 首先,我们需要理解IP地址和子网掩码的概念。IP地址是由32位二进制组成的,通常以点分十进制的形式...

    Java 实现ip 地址排序

    Java ip 地址排序Java ip 地址排序Java ip 地址排序Java ip 地址排序

    判断两个IP是否属于同一个子网(java)

    判断两个IP是否属于同一个子网(java) 简单代码

    IpRangeUtil;java 校验Ip段(子网掩码)

    IpRangeUtil;java 校验Ip段(子网掩码); 支持 iptables.patterns=10.0.0.0/8,192.168.0.0/16,172.16.0.0/12,202.195.129.240/28,202.195.128.0/20

    中国各省(32省份)IP网段表

    全国32个省份的IP网段。从网上下载的,经过手工整理成EXCEL文件,内容包括省份名称、起点IP、终点IP。

    跨网段获取远程主机MAC地址的方法与java实现

    ### 跨网段获取远程主机MAC地址:方法与Java实现 #### 引言与背景 在计算机网络领域,MAC地址(Media Access Control Address)作为网卡的唯一标识,扮演着关键角色,尤其是在网络通信和安全监控中。然而,传统的...

    TIA下如何访问不同IP网段中的PLC.pdf

    TIA下如何访问不同IP网段中的PLC.pdf

    不同IP网段的PLC进行S7通信的具体步骤.docx

    不同IP网段的PLC进行S7通信的具体步骤

    Java获取客户端IP及Mac地址(同网段).rar

    Java,运用了多线程内部执行,不影响其他登录验证操作。在Controller类获取客户端的IP地址的方法是:request....所以我们这里添加了条件验证,将客户端IP及Mac地址(同网段)与本地本地IP及Mac地址方法分开。

    java扫描网段

    1. **代码结构解析**:该Java类`Ip`实现了`Runnable`接口,意味着它可以被Java线程执行。通过`Ping`静态方法和`run`方法,实现了对指定IP地址的ping操作,并将结果存储在静态`Hashtable`中。 2. **多线程机制**:...

    IPV4大网段拆分为多个均分子网段

    6. **编写Java代码**: 在Java中,可以使用`java.net.InetAddress`类来处理IPv4地址。程序可能需要创建一个方法,输入原始网络地址和子网数,然后返回一系列子网的网络地址列表。此外,可能还需要处理错误,如无效的...

    Java局域网IP端口扫描

    用Java写的一个小巧程序,局域网内,扫描开放指定端口的主机

    java ip地址段计算

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

    IP网段判断-1.0.0.16384.zip

    压缩包中的文件"IP网段判断-1.0.0.16384"可能是一个AutoJS项目文件,包含了实现IP网段判断功能的脚本代码。16384这个数字可能是版本号的一部分,或者是与IP地址的某种特定关联,具体含义需要解压文件查看内容才能...

    java 判断两个时间段是否重叠的案例.docx

    "java 判断两个时间段是否重叠的案例" 本文主要介绍了如何在 Java 中判断...本文介绍了如何在 Java 中判断两个时间段是否重叠的案例,并提供了一份实现代码。该方法可以帮助开发者在实际开发中解决时间段重叠的问题。

    ip网段检测工具

    在IT行业中,网络管理是至关重要的任务之一,而IP网段检测工具则为网络管理员提供了极大的便利。"ipbook"这个标签可能指的是一个专门用于管理、记录和检测IP地址的软件或工具。在这个场景下,我们将深入探讨IP网段...

Global site tag (gtag.js) - Google Analytics