java ip范围_Java判断IP是否在指定范围

news/2024/7/6 0:29:12

public class ipTest {

/**

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

*/

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("192.168.1.1-192.168.1.10", "192.168.3.54")) {

System.out.println("ip属于该网段");

} else

System.out.println("ip不属于该网段");

}

}

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2010-12-22 13:47

浏览 1375

评论


http://www.niftyadmin.cn/n/2960385.html

相关文章

SQL 调用存储过程

--1调用存储过程exec 存储过程名 参数--2当表使用select a.*,b.* from tb b inner join (select * from openrowset(sqloledb,ip/server;sa;pwd,exec 库.dbo.存储过程))aon a.条件b.条件 转载于:https://www.cnblogs.com/sunxueyang222/p/7064053.html

平和二中高考2021成绩查询,2021二中艺术考试成绩

1驾驶人违法使用其他机动车号牌、行驶证的&#xff0c;一次记12分。查看本题分析2机动车发生财产损失交通事故&#xff0c;对应当自行撤离现场而未撤离的&#xff0c;交通警察不可以责令当事人撤离现场。查看本题分析3造成交通事故后逃逸且构成犯罪的驾驶人&#xff0c;将吊销驾…

Android Studio 中的FindBugs插件使用,轻松帮你发现Bug (转)

在日常开发过程中难免会因为一时疏忽而留下一些Bug&#xff0c;这些Bug就是埋在程序里的定时炸弹&#xff0c;如果不能及时铲除就会导致程序的不稳定&#xff0c;异常或闪退的现象&#xff0c;从而导致用户的体验的下降。那么怎么才能找出这些埋在程序里的定时炸弹呢&#xff1…

nova shelve 的使用

对于云中的资源我们常有例如以下需求 1&#xff0c;用户对临时不使用的VM进行停止操作。以节省费用。 2。对于长时间未使用的VM。管理员想要从hypervisor层面上清除它们从而节省主机资源。3。但之前的停止VM&#xff0c;VM仍旧会占用hypervisor上的资源&#xff0c;而且还须要在…

java socket 怎么运行_java程序关于eclipse运行socket程序

怎么在eclipse里面运行socket程序&#xff0c;它需要建立两个类&#xff0c;另外&#xff0c;我这程序有什么问题&#xff1f;搞不懂serversocket程序&#xff1a;packagesocket;importjava.io.IOException;importjava.net.*;publicclassT...怎么在eclipse里面运行socket程序&a…

html自适应宽度居中,纯CSS如何实现子元素自适应宽度并居中_html/css_WEB-ITnose

如上图所示&#xff0c;红色部分DIV宽度是100%&#xff0c;蓝色的是子元素&#xff0c;子元素有border-bottom&#xff0c;且文字右边有一个双箭头。现要求如下&#xff1a;1、纯CSS实现&#xff0c;不使用JS和table。2、文字因为是用户输入的&#xff0c;所以每一行的文字宽度…

mysql group by 组内排序

http://blog.csdn.net/shellching/article/details/8292338 所有SSD配置的最近生效费率查询 select * from billing_rates_tbl as tt wheresub_res_id like "%ssd::%"and res_type"server"and unit"M"and duration "12"group by sub_…

福师《计算机应用基础》在线作业一,福师《计算机应用基础》在线作业一答案...

福师《计算机应用基础》在线作业一答案 一、单选题(共 40 道试题&#xff0c;共 80 分。 ) V 1. 将十进制整数 25 转换成二进制数是() A. 11011 B. 10011 C. 11001 D. 11011 满分&#xff1a;2 分 2. Windows98 是一个多任务操作系统&#xff0c;这是指&#xff1a; A. Windows…