Java-打印给定范围内的随机IP地址

Java-打印给定范围内的随机IP地址,java,ip,range,Java,Ip,Range,我正在尝试从给定范围中获取一个随机ip地址 例如:startIp=“192.168.1.0”;endIp=“192.168.2.255” 我尝试将范围转换为cidr,并使用子网获取cidr列表的随机IP,但没有成功 是否有任何有效的方法可以从给定的ip范围或api生成随机ip 提前感谢。您可以通过以下步骤实现: 将两者转换 产生 将结果转换回 您可以通过以下步骤实现: 将两者转换 产生 将结果转换回 此方法工作正常,最大值为128.255.255.255。用于保留其返回的负值并在下面产生异常:线

我正在尝试从给定范围中获取一个随机ip地址

例如:startIp=“192.168.1.0”;endIp=“192.168.2.255”

我尝试将范围转换为cidr,并使用子网获取cidr列表的随机IP,但没有成功

是否有任何有效的方法可以从给定的ip范围或api生成随机ip


提前感谢。

您可以通过以下步骤实现:

  • 将两者转换
  • 产生
  • 将结果转换回

  • 您可以通过以下步骤实现:

  • 将两者转换
  • 产生
  • 将结果转换回

  • 此方法工作正常,最大值为128.255.255.255。用于保留其返回的负值并在下面产生异常:
    线程“main”java.net.UnknownHostException中的异常:-847933385位于java.net.Inet6AddressImpl.lookupAllHostAddr(本机方法)位于java.net.InetAddress$2.lookupAllHostAddr(未知源代码)位于java.net.InetAddress.GetAddressFromNameService(未知源代码)在java.net.InetAddress.getAllByName0(未知源代码)在java.net.InetAddress.getAllByName(未知源代码)…
    @Forece85转换为long,而不是看到这种方法工作正常,最大值为128.255.255.255。用于保留其返回的负值并在下面产生异常:
    线程“main”java.net.UnknownHostException中的异常:-847933385位于java.net.Inet6AddressImpl.lookupAllHostAddr(本机方法)位于java.net.InetAddress$2.lookupAllHostAddr(未知源代码)位于java.net.InetAddress.GetAddressFromNameService(未知源代码)在java.net.InetAddress.getAllByName0(未知源代码)在java.net.InetAddress.getAllByName(未知源代码)….
    @Forece85转换为long,请参见
    InetAddress i= InetAddress.getByName(IPString);
    int intRepresentation= ByteBuffer.wrap(i.getAddress()).getInt();
    
    r.nextInt(High-Low) + Low;
    
    i= InetAddress.getByName(String.valueOf(intRepresentation));
    String ip= i.getHostAddress();