点分十进制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();
    }

 

目录
相关文章
|
4月前
|
Java 测试技术 API
如何检查字符串是否仅包含数字
【8月更文挑战第22天】
226 0
|
6月前
|
机器学习/深度学习 C语言
目标类型的编码规则解码原类型的编码规则
类型转换:目标类型的编码规则解码原类型的编码规则
|
7月前
|
网络协议 网络虚拟化
10.1.1.0/31这个地址到底能不能用?31位长度的掩码是怎么回事?
10.1.1.0/31这个地址到底能不能用?31位长度的掩码是怎么回事?
|
7月前
Ip校验规则:以,分割IP字符串
Ip校验规则:以,分割IP字符串
34 0
|
7月前
固定电话和移动电话正则校验
固定电话和移动电话正则校验
125 0
|
7月前
|
算法
常用的简单校验算法:校验和,异或校验,crc校验,LRC校验,补码求和,checksum
常用的简单校验算法:校验和,异或校验,crc校验,LRC校验,补码求和,checksum
1093 1
|
应用服务中间件
在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义
在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义
663 0
一日一技:负长整数如何转换为IPv4地址?
一日一技:负长整数如何转换为IPv4地址?
100 2
分组校验和自定义校验
分组校验和自定义校验
96 0
|
算法
IP地址转换整型(算法练习)
IP地址转换整型(算法练习)
139 0
IP地址转换整型(算法练习)