You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Ansible获取两个IP地址之间的IP列表?

在Ansible中生成两个IP地址之间的IP列表

你可以通过将IP地址转换为整数、生成整数范围再转回IP地址的方式实现需求,以下是具体的Playbook示例:

---
- name: 生成指定IP区间的地址列表
  hosts: localhost
  vars:
    start_ip: "192.168.0.25"
    end_ip: "192.168.0.30"
  tasks:
    - name: 计算并生成IP列表
      set_fact:
        ip_list: >-
          {% set start_int = start_ip | ipaddr('int') %}
          {% set end_int = end_ip | ipaddr('int') %}
          {% for num in range(start_int, end_int) %}
            {{ num | ipaddr('address') }}
          {% endfor %}

    - name: 输出结果
      debug:
        msg:
          results: "{{ ip_list.split() }}"

关键逻辑说明:

  1. IP转整数:使用ipaddr('int')过滤器将起始和结束IP转换为对应的整数形式,这样就能通过数值范围生成连续的地址序列。
  2. 生成整数范围:range(start_int, end_int)生成左闭右开的整数区间,刚好匹配你示例中包含起始IP、不包含结束IP的需求。
  3. 整数转回IP:遍历整数序列,用ipaddr('address')将每个整数转换回标准IPv4地址格式。
  4. 整理列表:通过split()处理生成的空格分隔字符串,得到规范的IP列表。

如果需要包含结束IP(比如结果要包含192.168.0.30),只需将range(start_int, end_int)改为range(start_int, end_int + 1)即可。

内容的提问来源于stack exchange,提问作者leesangwoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 13:27:07