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

标签 java ip range

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

EX: startIp = "192.168.1.0";结束IP =“192.168.2.255”

我尝试将 range 转换为 cidr 并使用 SubnetUtils 获取 cidr 列表的 randomIp,但没有成功。

是否有任何有效的方法可以从给定的 ip 范围生成随机 ip 或可以执行此操作的 api?

提前致谢。

最佳答案

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

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

    关于Java - 打印给定范围内的随机IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52135031/

    相关文章:

    java - JPA/Hibernate - InheritanceType.JOINED 的行为类似于 InheritanceType.TABLE_PER_CLASS

    java - 如何从不同的类访问变量

    android - Android 模拟器和主机 PC 具有相同的 IP 地址

    audio - 使用超出范围的SimpleAudioEngine音量范围是否安全?

    java - 将 JPanel 添加到 JFrame 的成功率为 50%

    java - 为什么 WindowBuilder 事件没有被调用?

    JAVA获取IP地址

    dialog - 在后台显示和更新 applescript 输出

    excel - 如何创建 "if x ≥ then multiply by y"等的公式?

    database - 范围变量隐藏封闭 block LINQ 中的变量