`
ouyangfeng521
  • 浏览: 253310 次
  • 性别: 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是否属于同一个子网(java)

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

    java扫描网段

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

    IP地址段的过滤,限制ip,限制主机访问

    7. **IP子网掩码**:子网掩码用于确定IP地址中的网络部分和主机部分,对于IP段过滤,需要结合子网掩码来判断IP是否在指定的网段内。 8. **IP黑名单与白名单**:可以维护一个IP黑名单或白名单,前者包含不允许访问的...

    基于Java判断网络是否正常代码实例

    "基于Java判断网络是否正常代码实例" 本篇文章主要介绍了基于Java判断网络是否正常代码实例,通过示例代码详细介绍了判断网络是否正常的方法,对大家的学习或者工作具有一定的参考学习价值。 知识点一:Java中判断...

    zookeeper限制ip版

    - **添加IP检查逻辑**:在该方法内部,我们可以插入IP检查的代码,通过读取配置文件中的IP黑白名单,对比客户端的IP地址,决定是否允许建立连接。 - **创建配置接口**:为了管理IP黑白名单,我们需要在`src/main/...

    基于Java检查IPv6地址的合法性

    本文将引导读者了解如何使用 Java 语言来检查 IPv6 地址的合法性,并提供了详细的示例代码。 首先,需要了解什么是 IPv6。IPv6(Internet Protocol version 6)是最新的 Internet 协议版本,它旨在解决当前 IPv4 ...

    ping程序的设计与实现

    - `matchIP`方法判断两个IP地址是否在同一网段内。 - `printIP`方法将数组形式的IP地址转换为标准的点分十进制格式。 #### 结论 通过本课程设计,学生不仅能够掌握Java网络编程的基础知识,还能通过实际编程项目,...

    飞鸽传书(IPMessenger) 源码

    目前已有的版本包括: Win32, Win16, MacOS, MacOSX, X11, GTK, GNOME,Java 等, 并且公开源代码. 系统要求  Microsoft Windows 95/98/Me/NT4.0/2000/XP/2003  95/98/NT4.0 ... 要求 comctl32.dll(公共控件) 的版本...

    端口扫描程序的设计说明.doc

    3. **主机或网段扫描**:能够针对单个IP地址或一个IP地址范围进行扫描,这在排查整个网络的安全状况时非常有用。 4. **自定义端口范围扫描**:允许用户指定特定端口或端口范围,以针对特定服务进行扫描。 程序设计...

Global site tag (gtag.js) - Google Analytics