点分十进制IP校验、转换,掩码校验

简介: /***************************************************************************** * 点分十进制IP校验、转换,掩码校验 * 声明: * 本文主要记录如何对IP、掩码进行转换、校验等相关内容,注意大小端的问题。
/*****************************************************************************
 *                      点分十进制IP校验、转换,掩码校验
 * 声明:
 *     本文主要记录如何对IP、掩码进行转换、校验等相关内容,注意大小端的问题。
 *
 *                                           2016-5-5 深圳 南山平山村 曾剑锋
 ****************************************************************************/

一、参考文档:
    1. java编程,如何检查一个给定的字符串IP是否合法?
        http://www.oschina.net/question/994728_115374
    2. js验证IP及子网掩码的合法性有效性示例
        http://www.bkjia.com/Javascript/763031.html

二、点分十进制IP转整形
    static public int numericIPToInt(String numericIP) {
        String [] ips = numericIP.split("\\.");
        int ip = Integer.valueOf(ips[0]) << 24 | 
            Integer.valueOf(ips[1]) << 16 |
            Integer.valueOf(ips[2]) << 8 |
            Integer.valueOf(ips[3]);
        
        return ip;
    }

    static public String intToNumericIP(int ip) {
        return (ip & 0xff) + "." 
            + ((ip >> 8) & 0xff) + "." 
            + ((ip >> 16) & 0xff)+ "." 
            + ((ip >> 24) & 0xff));
    }

三、IP校验
    public static boolean isIpv4(String ipAddress) {
        String ip = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."
                + "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
                + "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
                + "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$";
        Pattern pattern = Pattern.compile(ip);
        Matcher matcher = pattern.matcher(ipAddress);
        return matcher.matches();
    }

四、netmask校验
    public static boolean isNetmask(String netmask) {
        String mask="^(254|252|248|240|224|192|128|0)\\.0\\.0\\.0" +
                "|255\\.(254|252|248|240|224|192|128|0)\\.0\\.0" +
                "|255\\.255\\.(254|252|248|240|224|192|128|0)\\.0" +
                "|255\\.255\\.255\\.(254|252|248|240|224|192|128|0)$"; 
        Pattern pattern = Pattern.compile(mask);
        Matcher matcher = pattern.matcher(netmask);
        return matcher.matches();
    }

 

目录
相关文章
|
消息中间件 存储 网络协议
【Kafka】Kafka 性能高的原因分析
【4月更文挑战第5天】【Kafka】Kafka 性能高的原因分析
|
消息中间件 Java Spring
SpringBoot实现RabbitMQ的简单队列(SpringAMQP 实现简单队列)
SpringBoot实现RabbitMQ的简单队列(SpringAMQP 实现简单队列)
242 1
|
监控 数据可视化 Java
深入探索:自制Agent监控API接口耗时
在微服务架构中,监控API接口的调用耗时对于性能优化至关重要。通过监控这些指标,我们可以识别瓶颈,优化系统性能。本文将分享如何自己动手实现一个Agent来统计API接口的调用耗时,提供一种有效的监控解决方案。
336 2
|
9月前
|
测试技术 API 开发者
持续上新!Qwen2.5-Max正式发布
持续上新!Qwen2.5-Max正式发布
持续上新!Qwen2.5-Max正式发布
|
负载均衡 安全 Java
【微服务系列笔记】Gateway
Gateway是Spring Cloud生态系统中的网关服务,作为微服务架构的入口,提供路由、负载均衡、限流、鉴权等功能。借助于过滤器和路由器,Gateway能够动态地管理请求流量,保障系统的安全和性能。
1842 7
|
机器学习/深度学习 存储 缓存
【机器学习】随机森林、AdaBoost、GBDT、XGBoost从零开始理解
介绍了机器学习中的几种集成学习算法,包括随机森林、AdaBoost、梯度提升决策树(GBDT)和XGBoost,解释了它们的概念、优缺点、算法过程以及系统设计。
1771 5
【机器学习】随机森林、AdaBoost、GBDT、XGBoost从零开始理解
|
监控 NoSQL 测试技术
MongoDB性能最佳实践:如何制定更有效的基准测试?
感谢你与我们一起走过这段MongoDB性能最佳实践之旅,希望你能从中获取一些有用的信息
2242 3
|
存储 网络协议 前端开发
NAS 和 SAN 服务器概述
NAS 和 SAN 服务器概述
963 1
|
JavaScript
npm报错:npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
npm报错:npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
1741 1
|
数据可视化 前端开发 JavaScript
react+datav+echarts实现可视化数据大屏
最近有点闲,就学习了下react,没想到就把react学完了,觉得还不错,就打算出一把react+datav的简易版可视化数据大屏供大家做个参考
1362 2
react+datav+echarts实现可视化数据大屏