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