我正在将nodejs代码转换为Java8。
在节点中有如下所示的代码
var ipToEndAt = ippp.prev("192.168.1.225");
ipToEndAt
的结果为"192.168.1.224"
我需要将此行转换为java代码。我搜索了SubnetUtils库,但找不到合适的东西。
类似我还需要将ip地址增加1
任何人都可以推荐图书馆或代码段吗?这将是最好的
答案 0 :(得分:5)
虽然自己做起来并不太难,但是Guava中的InetAddresses课程允许这种操作。无论如何,Guava对您的工具箱来说是一个非常有用的补充。
InetAddress address = InetAddress.getByName("192.168.1.225");
address = InetAddresses.decrement(address);
看,它看起来几乎与JS代码相同。
在你的评论中,你声明你无法使用减量方法,这表明你有一个非常古老的番石榴版本。
The project home page包含有关如何将当前版本(25.1)添加到项目依赖项的说明。
答案 1 :(得分:0)
这可以通过IPAddress Java library完成,其方式在IPv4和IPv6之间是多态的。另外,它不限于像Guava那样递增或递减1,您可以使用任何long值并在溢出的情况下捕获AddressValueException。免责声明:我是IPAddress的项目经理。
示例代码:
IPAddress result = increment("192.168.1.225", -1);
System.out.println(result);
result = increment("::", 1);
System.out.println(result);
static IPAddress increment(String addrStr, long inc) throws AddressValueException {
return new IPAddressString(addrStr).getAddress().increment(inc);
}
输出:
192.168.1.224
::1