Coldfusion 获取给定 IP4 地址范围内的所有 IP 地址

Coldfusion Get all IP addresses from a given IP4 address range

建立管理员输入ip范围的监控工具 例如。

开始:192.168.1.3 结束:192.168.1.30

输出:结构或数组

开始:192.168.1.50 End:192.169.1.12

输出:结构或数组

我怎样才能做到这一点 result.Is 有可用的 java 库吗?​​

知道 IP4 地址是 32 位(4 个元素中的每一个都是 8 位),您可以执行以下操作:

  • 将两个 IP 地址都转换为 32 位整数
  • 创建一个从 begin_int 迭代到 end_int
  • 的循环
  • 将循环索引转换回 IP4 地址

(抱歉没给代码,我java知识有限)

更新(google是你的朋友)(好吧,你也可以自己做!) 我的灵感来自 here。正如我所说:不能保证这有效!

import java.net.InetAddress;
import java.nio.ByteBuffer;

// Convert from an IPv4 address to an integer
InetAddress from_inet = InetAddress.getByName("192.168.1.50");
int from_address = ByteBuffer.wrap(from_inet.getAddress()).getInt();


// Convert from an IPv4 address to an integer
InetAddress to_inet = InetAddress.getByName("192.169.1.12");
int to_address = ByteBuffer.wrap(to_inet.getAddress()).getInt();


for(int i = from_address; i < to_address; i++) {
    // Convert from integer to an IPv4 address
    InetAddress foo = InetAddress.getByName(i);
    String address = foo.getHostAddress();
    System.out.println(address);
}