Java 判断ip是否在一个网段

1. 整体流程

以下是判断一个IP是否在一个网段内的步骤:

erDiagram
    判断IP是否在网段内 --> 是: 是
    判断IP是否在网段内 --> 否: 否

2. 具体步骤

步骤1:将IP地址和网段转换成整型数值

// 代码示例
String ip = "192.168.1.10";
String cidr = "192.168.1.0/24";

// 将IP地址转换成整型数值
String[] ipParts = ip.split("\\.");
int ipInt = 0;
for (int i = 0; i < 4; i++) {
    ipInt |= Integer.parseInt(ipParts[i]) << (24 - 8 * i);
}

// 将网段转换成整型数值
String[] cidrParts = cidr.split("/");
int cidrInt = 0;
String[] cidrIpParts = cidrParts[0].split("\\.");
for (int i = 0; i < 4; i++) {
    cidrInt |= Integer.parseInt(cidrIpParts[i]) << (24 - 8 * i);
}
int mask = -1 << (32 - Integer.parseInt(cidrParts[1]));

步骤2:判断IP是否在网段内

// 代码示例
if ((ipInt & mask) == (cidrInt & mask)) {
    System.out.println("IP在网段内");
} else {
    System.out.println("IP不在网段内");
}

结尾

通过上述步骤,你可以实现判断一个IP是否在一个网段内的功能。希望这篇文章对你有所帮助!如果有任何疑问,欢迎随时向我提问。祝你在编程的道路上越走越远!