Java 判断 IP 地址是否在指定范围内 - 示例代码
可以使用 Java 的 InetAddress 类来判断 IP 地址是否在指定范围内。下面是一个示例方法来判断 IP 是否在指定范围内:
import java.net.InetAddress;
import java.net.UnknownHostException;
public class IPAddressRangeChecker {
public static boolean isIPInRange(String ip, String startIP, String endIP) {
try {
long start = ipToLong(InetAddress.getByName(startIP));
long end = ipToLong(InetAddress.getByName(endIP));
long target = ipToLong(InetAddress.getByName(ip));
return target >= start && target <= end;
} catch (UnknownHostException e) {
e.printStackTrace();
return false;
}
}
private static long ipToLong(InetAddress ip) {
byte[] octets = ip.getAddress();
long result = 0;
for (byte octet : octets) {
result <<= 8;
result |= octet & 0xff;
}
return result;
}
public static void main(String[] args) {
String ip = '10.73.4.150';
String startIP = '10.73.4.111';
String endIP = '10.73.4.211';
boolean isInRange = isIPInRange(ip, startIP, endIP);
System.out.println(isInRange);
}
}
在上述示例中,isIPInRange 方法接受三个参数:待判断的 IP 地址、起始 IP 地址和结束 IP 地址。它会将 IP 地址转换为长整型数字进行比较,如果目标 IP 地址在起始 IP 地址和结束 IP 地址之间,则返回 true,否则返回 false。
在 main 方法中,我们使用 IP 地址 10.73.4.150 进行测试,起始 IP 地址为 10.73.4.111,结束 IP 地址为 10.73.4.211,然后打印结果。根据给定的范围,该方法会返回 true。
原文地址: https://www.cveoy.top/t/topic/pT91 著作权归作者所有。请勿转载和采集!