[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的范围)
Java,运用了多线程内部执行,不影响其他登录验证操作。在Controller类获取客户端的IP地址的方法是:request....所以我们这里添加了条件验证,将客户端IP及Mac地址(同网段)与本地本地IP及Mac地址方法分开。
shell 判断输入的ip是否和本机的ip同网段 包含两种实现方法
用c#实现的判断两个ip地址是否属于同一网段,用于网络传输判断
判断两个IP是否属于同一个子网(java) 简单代码
网络安全技术- IP地址和子网划分-06 判断IP地址所属的网段.mp3
TIA下如何访问不同IP网段中的PLC.pdf
应用场景: 多个工业现场设备的IP地址出厂默认设置(IP地址一样),或者设备的IP地址不在同一个网段,需要将这些设备的IP地址转换成同一网段的独立的IP地址,便于组网通讯。
交换机上的DHCP+vlan多IP网段配置.doc
此工具类包含根据ip和掩码(cidr)计算网段 判断ip是否在网段内 判断是否是ip ip转long long类型的ip转string
C#实现网段扫描.docC#实现网段扫描.docC#实现网段扫描.doc
Java ip 地址排序Java ip 地址排序Java ip 地址排序Java ip 地址排序
RedHadlinuxDHCP分配多个网段IP.pdf
自动Ping一个网段内从0~255的所有IP地址,并写入“不通.txt"文件中,方便查找一个网段内的IP使用情况。
在单位局域网中跨网段访问.pdf
java 判断两个时间段是否重叠的案例.docx
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