JAVA和C#检测IP地址段是否交叉和获取地址段IP列表的方法
一、说明
我们经常编程时,需要对一个DIDR地段计算其可用IP地址,或者验证某个IP是否被包含在一个地址段中。
二、工具
1、Java 可以使用 cidr-ip-trie库解决。
https://github.com/veqryn/cidr-ip-trie
package com.test.utils; import com.github.veqryn.net.Cidr4;
import org.junit.Test; public class CIDRTest {
@Test
public void verifyCidr() {
com.github.veqryn.net.Cidr4 cidr1 = new Cidr4("192.168.1.0/28");
com.github.veqryn.net.Cidr4 cidr2 = new Cidr4("192.168.0.0/30");
boolean isInRange = cidr1.isInRange(cidr2, true);
System.out.println(isInRange);
System.out.println("---------------"); System.out.println(cidr1.getLowBinaryInteger(true));
System.out.println(cidr1.getHighBinaryInteger(true));
System.out.println("---------------");
System.out.println(cidr2.getLowBinaryInteger(true));
System.out.println(cidr2.getHighBinaryInteger(true));
System.out.println("---------------"); System.out.println(cidr1.getAddressRange());
System.out.println(cidr2.getAddressRange()); String[] addresses1 = cidr1.getAllAddresses(true);
for (String s : addresses1) {
System.out.println(s);
}
System.out.println("---------------");
String[] addresses2 = cidr2.getAllAddresses(true);
for (String s : addresses2) {
System.out.println(s);
}
}
}
2、C# 可以使用IPAddressRange库解决。
https://www.nuget.org/packages/IPAddressRange/
JAVA和C#检测IP地址段是否交叉和获取地址段IP列表的方法的更多相关文章
- 微信支付报ip错,怀疑是因为不能正确获取$_Server[addr])ip导致的
报如下错误,应该是本地测试环境不能正确获取客户ip导致的错误 果然 放到服务器上在测试就好了
- 关于是用dotnet获取本机IP地址+计算机名的方法
印象中在maxscript帮助文档里找到过方法,但是当时没记下来.只能通过dotnet实现了. 如果电脑有无线网卡和本地连接,可能会出现乱码,也问了写dotnet的朋友,提供了一些思路,不过最终还是使 ...
- #获取本机IP地址时排除IPv6类型,只返回IPv4地址的方法
public static string GetLocalIP(){try{string HostName = Dns.GetHostName(); //得到主机名IPHostEntry IpEntr ...
- Linux 获取本机IP、MAC地址用法大全
getifaddrs()和struct ifaddrs的使用,获取本机IP ifaddrs结构体定义如下: struct ifaddrs { struct ifaddrs *ifa_next; /* ...
- Vue实战041:获取当前客户端IP地址详解(内网和外网)
前言 我们经常会有需求,希望能获取的到当前用户的IP地址,而IP又分为公网ip(也称外网)和私网IP(也称内网IP),IP地址是IP协议提供的一种统一的地址格式,每台设备都设定了一个唯一的IP地址”, ...
- 如何获取外网Ip呢, 终于找到方法了
临时更换网址:http://20140507.ip138.com/ic.asp 这个网址能同时获取ip和城市名字 上面的网址如何来的呢,其实很简单,随便打开一个获取Ip的网站,比如http://www ...
- Python 优雅获取本机 IP 方法【转】
转自:https://www.cnblogs.com/lfxiao/p/9672975.html 见过很多获取服务器本地IP的代码,个人觉得都不是很好,例如以下这些 不推荐:靠猜测去获取本地IP方法 ...
- Python 优雅获取本机 IP 方法
原文 见过很多获取服务器本地IP的代码,个人觉得都不是很好,例如以下这些 不推荐:靠猜测去获取本地IP方法 #!/usr/bin/env python # -*- coding: utf-8 -*- ...
- 多层代理获取用户真实IP
1. 几个概念remote_addr:如果中间没有代理,这个就是客户端的真实IP,如果有代理,这就是上层代理的IP.X-Forwarded-For:一个HTTP扩展头,格式为 X-Forwarded- ...
随机推荐
- python接口自动化测试二十一:类和方法
# 类和方法 class Count(): def __init__(self, aaa, bbb): # 初始化 # 可以放公共的参数 print('实例化的时候,会执行init的内容') self ...
- python 全栈开发,Day100(restful 接口,DRF组件,DRF跨域(cors组件))
昨日内容回顾 1. 为什么要做前后端分离? - 前后端交给不同的人来编写,职责划分明确.方便快速开发 - 针对pc,手机,ipad,微信,支付宝... 使用同一个接口 2. 简述http协议? - 基 ...
- python 全栈开发,Day23(复习,isinstance和issubclass,反射)
一.复习 class A: def func1(self):pass def func2(self): pass def func3(self): pass a = A() b = A() print ...
- Lucene.Net简单例子-01
前面已经简单介绍了Lucene.Net,下面来看一个实际的例子 1.1 引用必要的bll文件.这里不再介绍(Lucene.Net PanGu PanGu.HightLight PanGu.Luc ...
- HttpClient + Testng实现接口测试
HttpClient教程 : https://www.yeetrack.com/?p=779 一,所需要的环境: 1,testng .httpclient和相关的依赖包 二.使用HttpClient登 ...
- C# mongoDB Driver 使用对象方式查询语法大全
#region 查询方法 /// <summary> /// 获取单个对象 /// </summary> /// <typeparam name="T" ...
- binlog和redo log日志提交
组提交(group commit)是MYSQL处理日志的一种优化方式,主要为了解决写日志时频繁刷磁盘的问题.组提交伴随着MYSQL的发展不断优化,从最初只支持redo log 组提交,到目前5.6官方 ...
- [AH2017/HNOI2017]礼物
题解: 水题 化简一波式子会发现就是个二次函数再加上一个常数 而只有常数中的-2sigma(xiyi)是随移动而变化的 所以只要o(1)求出二次函数最大值然后搞出sigma(xiyi)就可以了 这个东 ...
- Flume+Kafka整合
脚本生产数据---->flume采集数据----->kafka消费数据------->storm集群处理数据 日志文件使用log4j生成,滚动生成! 当前正在写入的文件在满足一定的数 ...
- Vijos1605 NOIP2008 提高组T4 双栈排序 BFS
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - Vijos1605 题意概括 有1个1~n的排列,有2个栈,现在通过以下操作,使得出栈序列有序. 操作a 当前 ...