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

时间:2018-09-02 07:53:04

标签: java ip range

我正在尝试从给定范围获取随机IP地址。

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

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

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

谢谢。

1 个答案:

答案 0 :(得分: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();