如何从Java中的IPv6子网获取所有IP?

时间:2019-07-05 07:29:27

标签: java ipv6

我正在使用“ java-ipv6-0.17” jar在Java中实现IPv6支持吗?

我使用下面的代码获得了起始范围和结束范围,但是我需要给定子网中的所有IP吗?

import com.googlecode.ipv6.IPv6NetworkMask;

public class IP {

public static void main(String[] args) {

final IPv6Network strangeNetwork = IPv6Network.fromString("2001:0db8::/31");
System.out.println("Start Range:"+ " "+ strangeNetwork.getFirst());
System.out.println("End Range:"+ " "+ strangeNetwork.getLast() + "\n");

输出:

开始范围:2001:db8 ::

结束范围:2001:db9:ffff:ffff:ffff:ffff:ffff:ffff

任何人都可以帮助并提供代码段吗?

1 个答案:

答案 0 :(得分:0)

执行此操作是一个非常糟糕的主意,因为正如评论所述,您可能无法存储所有地址,但是作为一种学习体验,您可以使用{{1}遍历IPv6Address范围}。由于IPv6AddressRange实现了IPv6AddressRange,我们可以使用增强的for循环遍历它:

Iterable