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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java - 在给定范围内打印随机IP地址相关的知识,希望对你有一定的参考价值。

我试图从给定范围获取随机IP地址。

EX:startIp =“192.168.1.0”; endIp =“192.168.2.255”

我尝试将范围转换为cidr并使用SubnetUtils获取cidr列表的randomIp,但没有运气。

是否有任何有效的方法从给定的ip-range或api生成随机ip可以做到这一点?

提前致谢。

答案

您可以按照以下步骤实现:

  1. 转换两个IPs to numeric values
InetAddress i= InetAddress.getByName(IPString);
int intRepresentation= ByteBuffer.wrap(i.getAddress()).getInt();
  1. 生成random between the limits
r.nextInt(High-Low) + Low;
  1. 转换结果回numeric to IP
i= InetAddress.getByName(String.valueOf(intRepresentation));
String ip= i.getHostAddress();

以上是关于Java - 在给定范围内打印随机IP地址的主要内容,如果未能解决你的问题,请参考以下文章

Java - 在指定的给定月份 - 年份范围内打印每个月的第一个和最后一个日期

JAVA随机数之多种方法从给定范围内随机N个不重复数

判断IP地址是否在指定范围内的方法

在Java中,给定IP地址范围,返回覆盖范围的CIDR块的最小列表

IP 地址重叠/在 CIDR 范围内

Java计算一个IP地址是不是在指定范围内