Java 检查IPv4地址是否在专用范围内

Java 检查IPv4地址是否在专用范围内,java,networking,Java,Networking,在Python中,使用IPy模块可以执行以下操作: >>> ip.iptype() 'PRIVATE' 有没有一个库或简单的方法可以在Java中实现类似的功能 似乎不完全是这样,但是InetAddress有一些isXX()方法,比如:isAnyLocalAddress()和isSiteLocalAddress()如果对您不起作用,那么应该很容易将以下内容转换为java: 我相信Inet4Address.isSiteLocalAddress()是您想要的方法。以下是一个例子:

在Python中,使用IPy模块可以执行以下操作:

 >>> ip.iptype()
'PRIVATE'

有没有一个库或简单的方法可以在Java中实现类似的功能

似乎不完全是这样,但是
InetAddress
有一些isXX()方法,比如:
isAnyLocalAddress()
isSiteLocalAddress()
如果对您不起作用,那么应该很容易将以下内容转换为java:


我相信Inet4Address.isSiteLocalAddress()是您想要的方法。以下是一个例子:

public final class IPFreely
{
    public static void main(String[] args)
    {
        byte[] rawAddress1 =
        { 10, 0, 0, 0 };
        byte[] rawAddress2 =
        { 10, 0, 32, 0 };
        byte[] rawAddress3 =
        { (byte) 172, 16, 0, 0 };
        byte[] rawAddress4 =
        { (byte) 192, (byte) 168, 0, 0 };

        testIpAddress(rawAddress1);
        testIpAddress(rawAddress2);
        testIpAddress(rawAddress3);
        testIpAddress(rawAddress4);
    }

    public static void testIpAddress(byte[] testAddress)
    {
        Inet4Address inet4Address;

        try
        {
            inet4Address = (Inet4Address) InetAddress.getByAddress(testAddress);

            System.out.print("inet4Address.isSiteLocalAddress(): ");
            System.out.println(inet4Address.isSiteLocalAddress());
        }
        catch (UnknownHostException exception)
        {
            System.out.println("UnknownHostException");
        }
    }
}

类中的任何方法都有帮助吗?看看@AlexR Yup,在大多数情况下都没有帮助。:)我不是python或IP专业人士,我只是在Google上搜索了您在python中使用的模块,找到了您正在使用的函数并将其放在这里。:)
isSiteLocalAddress()
是我发现在确定私有IP地址时最有用的一个。
isSiteLocalAddress()
为127.0.0.1返回
false
,因此您需要检查它是否是带有
isLoopbackAddress()
的本地主机。
public final class IPFreely
{
    public static void main(String[] args)
    {
        byte[] rawAddress1 =
        { 10, 0, 0, 0 };
        byte[] rawAddress2 =
        { 10, 0, 32, 0 };
        byte[] rawAddress3 =
        { (byte) 172, 16, 0, 0 };
        byte[] rawAddress4 =
        { (byte) 192, (byte) 168, 0, 0 };

        testIpAddress(rawAddress1);
        testIpAddress(rawAddress2);
        testIpAddress(rawAddress3);
        testIpAddress(rawAddress4);
    }

    public static void testIpAddress(byte[] testAddress)
    {
        Inet4Address inet4Address;

        try
        {
            inet4Address = (Inet4Address) InetAddress.getByAddress(testAddress);

            System.out.print("inet4Address.isSiteLocalAddress(): ");
            System.out.println(inet4Address.isSiteLocalAddress());
        }
        catch (UnknownHostException exception)
        {
            System.out.println("UnknownHostException");
        }
    }
}