簡體   English   中英

CIDR表示法和IP范圍驗證器模式

[英]CIDR notation and IP range validator pattern

我有一個模式來驗證正常的IP地址,即:

private static final String PATTERN =
            "^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." +
                    "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." +
                    "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." +
                    "([01]?\\d\\d?|2[0-4]\\d|25[0-5])$";

以及驗證輸入是否是有效IP地址的驗證方法:

private static boolean validate(final String ip){

        Pattern pattern = Pattern.compile(PATTERN);
        Matcher matcher = pattern.matcher(ip);
        return matcher.matches();
    }

但是,現在我需要為CIDR添加驗證(例如84.240.40.0/24)符號和沒有主機的IP范圍(例如172.24.105),我嘗試了許多不同的模式但沒有得到具體的東西。 有什么建議?

Pattern pattern = Pattern.compile("^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\/(\\d|[1-2]\\d|3[0-2]))?$");
Matcher matcher = pattern.matcher("84.240.40.0/24");
if (matcher.find()) {
    System.out.println(matcher.group());
}

輸出:

84.240.40.0/24

如果您只想匹配范圍,此模式匹配IPv4地址和IPv4 CIDR范圍,您應該刪除最后一個問號

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM