Java 234324.32423.234234.324234是有效地址吗?

Java 234324.32423.234234.324234是有效地址吗?,java,platform,inetaddress,Java,Platform,Inetaddress,有什么办法吗 InetAddress.getByName(234324.32423.234234.324234) 是否将返回非空地址值似乎是这样。 因为这是在单元测试中发生的,所以我所要做的就是强制InetAddress抛出异常。使用PowerMock的以下模拟无法工作,有什么原因吗?在我的类签名之前,我确实有@RunWith(PowerMockRunner.class)和@PrepareForTest({InetAddress.class})的注释 String testIp=“127.0.

有什么办法吗 InetAddress.getByName(234324.32423.234234.324234) 是否将返回非空地址值似乎是这样。

因为这是在单元测试中发生的,所以我所要做的就是强制InetAddress抛出异常。使用PowerMock的以下模拟无法工作,有什么原因吗?在我的类签名之前,我确实有@RunWith(PowerMockRunner.class)和@PrepareForTest({InetAddress.class})的注释

String testIp=“127.0.0.1”;
mockStatic(InetAddress.class);
PowerMockito.when(InetAddress.getByName(testIp)).thenthow(UnknownHostException.class);
MyClass SomeClassThatCallsineTadressGetByName=新MyClass(32);
调用sinetAddressGetByName.setHostAddress(testIp)的类;

调用SineTAddressGetByName.getHostAddress()的类不是100%确定,但您的地址可能被解析为IPv6。在您的本地环境中,您没有这样的分辨率,但在云中有人响应它吗


根据文档,getByName也可能解析为IPv6。

不是100%确定,但您的地址可能被解析为IPv6。在您的本地环境中,您没有这样的分辨率,但在云中有人响应它吗

根据文档,getByName也可能解析为IPv6

234324.32423.234234.324234是有效地址吗

没有

它不是有效的IPv4地址,因为由4部分组成的IPv4地址中的数字是范围为0到255的十进制数字

它不会解析为IPv6地址,因为IPv6地址的组件由冒号而不是点分隔。(可选IPv6格式有冒号和点…但至少始终存在一个冒号。)

参考资料:


在我的本地环境中,它返回null。但当迁移到云时,它似乎返回了一个有效的地址

它应该总是返回
null
。这不是有效的IP地址字符串。。。根据javadocs。(您所说的“迁移到云”是什么意思?您是否将代码翻译成其他语言?)

这可能吗?iNet地址是否依赖于平台

不应该是这样的,第一

为了记录,OpenJDK中的IPv4地址解析会检查组件编号的范围


1-至少不适用于任何符合规范的最新版本的Java。不符合规范的实现可能会出现,但也不会是Java(tm)

234324.32423.234234.324234是有效地址吗

没有

它不是有效的IPv4地址,因为由4部分组成的IPv4地址中的数字是范围为0到255的十进制数字

它不会解析为IPv6地址,因为IPv6地址的组件由冒号而不是点分隔。(可选IPv6格式有冒号和点…但至少始终存在一个冒号。)

参考资料:


在我的本地环境中,它返回null。但当迁移到云时,它似乎返回了一个有效的地址

它应该总是返回
null
。这不是有效的IP地址字符串。。。根据javadocs。(您所说的“迁移到云”是什么意思?您是否将代码翻译成其他语言?)

这可能吗?iNet地址是否依赖于平台

不应该是这样的,第一

为了记录,OpenJDK中的IPv4地址解析会检查组件编号的范围



1-至少不适用于任何符合规范的最新版本的Java。不符合规范的实现可能会出现,但也可能不是Java(tm)。

我不知道您是否这样认为,但某些平台会截断任何格式有效IP(数字(点)数字(点)数字(点)数字(点)数字)的小数部分并返回此操作的结果IP。它返回的确切“有效地址”是什么?我不知道这是否是您的情况,但某些平台会截断任何格式有效IP(数字(点)数字(点)数字(点)数字(点)数字)的小数部分,并返回此操作的结果IP。它返回的确切“有效地址”是什么?