在Java中,你可以使用 InetAddress
和 SubnetUtils
类来判断一个IP是否在指定的网段内。以下是一个示例:
首先,你需要添加Apache Commons Net库到你的项目中,因为 SubnetUtils
类是这个库的一部分。如果你使用Maven,你可以在 pom.xml
文件中添加以下依赖:
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.8.0</version>
</dependency>
然后,你可以使用以下代码来判断IP是否在指定的网段内:
import org.apache.commons.net.util.SubnetUtils;
import java.net.InetAddress;
public class Main {
public static void main(String[] args) {
try {
String cidrNotation = "192.168.1.0/24";
String ipAddress = "192.168.1.5";
SubnetUtils utils = new SubnetUtils(cidrNotation);
boolean inRange = utils.getInfo().isInRange(ipAddress);
System.out.println(inRange);
} catch (Exception e) {
e.printStackTrace();
}
}
}
在这个例子中,我们首先创建了一个 SubnetUtils
对象,它表示一个子网。然后,我们使用 isInRange
方法来检查指定的IP地址是否在这个子网内。如果IP地址在子网内,isInRange
方法将返回 true
,否则返回 false
。