Java中如何判断一个IP是否在一个网段里面?

本文最后更新于2018年4月1日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢!

=Start=

缘由:

功能开发需要,学习Java需要(之前有写过Python版本的,因为Python本身的特性以及netaddr模块,所以写起来很简单),后来发现Java里也有相关成熟的jar包,所以,也很简单。。。

正文:

参考解答:

# SubnetUtils
http://commons.apache.org/proper/commons-net/javadocs/api-3.6/index.html

# IpAddressMatcher
https://docs.spring.io/spring-security/site/docs/4.2.4.RELEASE/apidocs/org/springframework/security/web/util/matcher/IpAddressMatcher.html

&

 

参考链接:

=END=

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/3853.html

《Java中如何判断一个IP是否在一个网段里面?》上有2条评论

  1. 如何用Java进行有效的IP地址校验?
    java judge string is ip address
    https://stackoverflow.com/questions/4581877/validating-ipv4-string-in-java
    http://docs.guava-libraries.googlecode.com/git-history/v10.0.1/javadoc/com/google/common/net/InetAddresses.html

    // 推荐Google Guava的这个
    import com.google.common.net.InetAddresses;
    boolean isValid = InetAddresses.isInetAddress("1.2.3.4");

    Validate IPv4 address in Java
    https://stackoverflow.com/Questions/5667371/validate-ipv4-address-in-java

    private static final Pattern PATTERN = Pattern.compile(
    "^(([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d\\d?|2[0-4]\\d|25[0-5])$");

    public static boolean validate(final String ip) {
    return PATTERN.matcher(ip).matches();
    }

发表评论

电子邮件地址不会被公开。 必填项已用*标注