可以使用 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

Java 判断 IP 地址是否在指定范围内 - 示例代码

原文地址: https://www.cveoy.top/t/topic/pT91 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录