IPUtils

public class IPUtils {

    /***
     * 校验IP段是否一致
     * IP段的前三部分必须一直, 比如222.72.45.0-222.72.45.255, 不能是222.72.45.0 - 110.72.45.255
     * @param startSection
     * @param endSection
     * @return
     */
    public static boolean verifyIPSectionMeet(String startSection, String endSection){
        boolean startIpMeet = verifyIPMeet(startSection);
        if (!startIpMeet){
            throw new YDIllegalArgumentException("开始段IP不合法。");
        }
        boolean endIpMeet = verifyIPMeet(endSection);
        if (!endIpMeet){
            throw new YDIllegalArgumentException("结束段IP不合法。");
        }
        if (startIpMeet && endIpMeet){
            String startIpPrefix = startSection.substring(0, startSection.lastIndexOf(".") + 1);
            String endIpPrefix = endSection.substring(0, startSection.lastIndexOf(".") + 1);
            if (startIpPrefix.equals(endIpPrefix)){
                return true;
            }
        }
        return false;
    }
    
    /***
     * 校验IP是否合法
     * @param ip
     * @return
     */
    public static boolean verifyIPMeet(String ip){
        YDAssert.isNotNull(ip, "IP不能为空。");
         // 定义正则表达式
        String regex = "^(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)$";
        // 判断ip地址是否与正则表达式匹配
        if (ip.matches(regex)) {
            // 返回判断信息
            return true;
        }
        return false;
    }
}
原文地址:https://www.cnblogs.com/tonggc1668/p/6542726.html