`
shuai1234
  • 浏览: 972233 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

java判断IP是否在某个网段中 .

    博客分类:
  • java
 
阅读更多
[java] view plaincopyprint?
01./** 
02.     * 判断ip是否在指定网段中 
03.     * @author dh 
04.     * @param iparea 
05.     * @param ip 
06.     * @return boolean 
07.     */  
08.    public static boolean ipIsInNet(String iparea, String ip) {  
09.        if (iparea == null)  
10.            throw new NullPointerException("IP段不能为空!");  
11.        if (ip == null)  
12.            throw new NullPointerException("IP不能为空!");  
13.        iparea = iparea.trim();  
14.        ip = ip.trim();  
15.        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)";  
16.        final String REGX_IPB = REGX_IP + "//-" + REGX_IP;  
17.        if (!iparea.matches(REGX_IPB) || !ip.matches(REGX_IP))  
18.            return false;  
19.        int idx = iparea.indexOf('-');  
20.        String[] sips = iparea.substring(0, idx).split("//.");  
21.        String[] sipe = iparea.substring(idx + 1).split("//.");  
22.        String[] sipt = ip.split("//.");  
23.        long ips = 0L, ipe = 0L, ipt = 0L;  
24.        for (int i = 0; i < 4; ++i) {  
25.            ips = ips << 8 | Integer.parseInt(sips[i]);  
26.            ipe = ipe << 8 | Integer.parseInt(sipe[i]);  
27.            ipt = ipt << 8 | Integer.parseInt(sipt[i]);  
28.        }  
29.        if (ips > ipe) {  
30.            long t = ips;  
31.            ips = ipe;  
32.            ipe = t;  
33.        }  
34.        return ips <= ipt && ipt <= ipe;  
35.    }  

 

分享到:
评论

相关推荐

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

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

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

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

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

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

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

    以下是一个简单的C#函数示例,用于判断两个IP地址是否在同一网段: ```csharp using System.Net; public bool IsSameSubnet(IPAddress ip1, IPAddress ip2, IPAddress subnetMask) { byte[] ip1Bytes = ip1....

    shell 判断ip同网段

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

    IP网段判断-1.0.0.16384.zip

    标题中的"IP网段判断-1.0.0.16384.zip"暗示了这个压缩包可能包含一个或多个程序或脚本,其主要功能是处理与IP地址相关的网络段判断问题。IP地址是互联网上的每个设备独一无二的标识,通常以点分十进制的形式表示,如...

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

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

    两IP是否在同一个网段

    判断两个IP地址是否在同一网段的过程通常包括以下步骤: 1. 将IP地址转换为二进制形式。 2. 对比每个IP地址与子网掩码进行与操作,得到网络部分。 3. 比较两个网络部分是否一致。如果一致,那么这两个IP地址就在同一...

    网络安全技术- IP地址和子网划分-06 判断IP地址所属的网段.mp3

    网络安全技术- IP地址和子网划分-06 判断IP地址所属的网段.mp3

    IP地址跨网段转换.pdf

    在多个工业现场设备进行组网通讯时,常会遇到两个问题,一是多个设备出厂时IP地址设置默认相同,二是设备的IP地址不在同一个网段。这两个问题都会影响设备之间的通讯。为解决这个问题,需要将这些设备的IP地址转换成...

    java的ip常用工具类

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

    局域网IP除了192.168.以外,你还知道哪几种IP网段? 我来说说

    下面我们将详细讨论这些IP网段以及它们在网络中的应用。 首先,192.168.0.0/16网段是最常见的私有IP地址之一。它包含了从192.168.0.0到192.168.255.255的256个子网和每个子网65,534个可用的主机地址。这个网段广泛...

    Java 实现ip 地址排序

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

    交换机上的DHCP+vlan多IP网段配置.doc

    在本文档中,我们可以看到IP地址的分配命令,如`Switch(config-if)#ip add 192.168.10.254 255.255.255.0`等,这些命令将为vlan 10分配IP地址192.168.10.254/24。 三、DHCP服务器的配置 DHCP(Dynamic Host ...

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

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

    C#实现网段扫描.doc

    在C#中实现网段扫描涉及到网络编程的基本概念和技术,主要是通过使用.NET框架中的System.Net命名空间提供的类。本文将详细介绍如何利用C#进行网络扫描,包括获取本地主机IP地址、远程查询以及实现网段扫描。 1. ...

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

    本文主要介绍了如何在 Java 中判断两个时间段是否重叠的案例。时间段是指具有起始时间和终止时间的时间范围,在实际开发中,我们经常需要判断两个时间段是否存在重叠的情况。下面,我们将通过代码实现来详细介绍如何...

    RedHadlinuxDHCP分配多个网段IP.pdf

    在Red Hat Linux系统中,配置DHCP服务器来为多个不同网段的客户端分配IP地址时,需要解决跨网段通信的问题。由于DHCP的通信基于广播,它不能直接跨越路由器。为了解决这个问题,可以设置一个DHCP中继代理(dhcprelay...

    局域网IP扫描-跨网段IP扫描程序

    标题中的“局域网IP扫描-跨网段IP扫描程序”指的是一个专门用于在局域网内部进行IP地址探测和扫描的工具,它能够跨越不同的网络子网进行操作。这样的程序通常由网络管理员或者IT技术人员使用,以了解网络中设备的...

Global site tag (gtag.js) - Google Analytics