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

时间:2016-01-05 18:40:42

标签: java coldfusion network-programming cfml cfc

建立管理员将输入i​​p范围的监控工具 例如。

开始:192.168.1.3结束:192.168.1.30

输出:结构或数组

  • 192.168.1.4
  • 192.168.1.5
  • 192.168.1.6 ......等等

    OR

开始:192.168.1.50结束:192.169.1.12

输出:结构或数组

  • 192.168.1.50
  • 192.168.1.51 ...
  • 192.169.1.3

如何实现此结果。是否有可用的Java库?

1 个答案:

答案 0 :(得分:3)

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

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

(抱歉不给代码,但我的java知识有限)

更新(谷歌是你的朋友)(好吧,你也可以自己做!) 我的灵感来自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);
}