验证IP是否属于某个IP段
时间:2019-08-22
本文章向大家介绍验证IP是否属于某个IP段,主要包括验证IP是否属于某个IP段使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
验证IP是否属于某个IP段
package com.boco.iam.test; /** * @author boco * 判断ip是否属于某个区间,例如 * 10.10.10.116 是否属于固定格式的IP段10.10.1.00-10.10.255.255 */ public class IpUtil { /* * 验证IP是否属于某个IP段 * ipSection IP段(以'-'分隔) * ip所验证的IP号码 */ public static void main(String[] args) { String ip = "10.181.211.132"; String ipSection = "10.181.203.0-10.181.217.255"; boolean exists = ipExistsInRange(ip, ipSection); System.out.println(exists); System.out.println(getIp2long(ip)); System.out.println(getIp2long2(ip)); } /**判断ip是否属于某个区间,例如 * 10.10.10.116 是否属于固定格式的IP段10.10.1.00-10.10.255.255 * @param ip * @param ipSection * @return */ public static boolean ipExistsInRange(String ip, String ipSection) { ipSection = ipSection.trim(); ip = ip.trim(); int idx = ipSection.indexOf('-'); String beginIP = ipSection.substring(0, idx); String endIP = ipSection.substring(idx + 1); return getIp2long(beginIP) <= getIp2long(ip)&& getIp2long(ip) <= getIp2long(endIP); } /**ip地址转换成长整型方法1 * @param ip * @return */ public static long getIp2long(String ip) { ip = ip.trim(); String[] ips = ip.split("\\."); long ip2long = 0L; for (int i = 0; i < 4; ++i) { ip2long = ip2long << 8 | Integer.parseInt(ips[i]); } return ip2long; } /**ip地址转换成长整型方法2 * @param ip * @return */ public static long getIp2long2(String ip) { ip = ip.trim(); String[] ips = ip.split("\\."); long ip1 = Integer.parseInt(ips[0]); long ip2 = Integer.parseInt(ips[1]); long ip3 = Integer.parseInt(ips[2]); long ip4 = Integer.parseInt(ips[3]); long ip2long = 1L * ip1 * 256 * 256 * 256 + ip2 * 256 * 256 + ip3 * 256+ ip4; return ip2long; } }
原文地址:https://www.cnblogs.com/caoqh/p/11393404.html
- thrift:swift项目笔记
- Java常用类(五)之集合工具类Collections
- Windows8小技巧(1)—Map Network Drive
- mysql: Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for opera
- tomcat 8.5.9.0 解决catalina.out过大的问题
- 物联网是如何驱动网络变革的?——上
- Java常用类(四)之数组工具类Arrays
- java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.isAsyncStarted()Z 的解决
- JS魔法堂:定义页面的Dispose方法——[before]unload事件启示录
- HashSet/HashMap详解
- Ajax大显身手
- bash编程之xargs实用技巧
- 表单验证和正则表达式
- ELK日志系统:Elasticsearch + Logstash + Kibana 搭建教程
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android APP之WebView校验SSL证书的方法
- Android中okhttp3使用详解
- Android中RecyclerView实现Item添加和删除的代码示例
- 小程序图片上传,存储,获取,显示(含源码)
- Android网络请求框架Retrofit详解
- Android控件RadioButton实现多选一功能
- 解决Android使用Handler造成内存泄露问题
- Android中imageView图片放大缩小及旋转功能示例代码
- Android 中 ThreadLocal使用示例
- Flutter基础widgets教程-Transform篇
- 借助云开发实现小程序模版消息推送(含源码)
- Android 监听软键盘状态的实例详解
- Android 中 ActivityLifecycleCallbacks的实例详解
- Android 优化Handler防止内存泄露
- Android Spinner 组件的应用实例