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

问题描述 投票:0回答:1

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

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

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

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

提前致谢。

java ip range
1个回答
1
投票

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

  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();
© www.soinside.com 2019 - 2024. All rights reserved.