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

如何用jq将TeemIP IPAM的PC数据转换为Kea DHCP预留格式

使用jq将TeemIP PC设备数据转换为Kea DHCP预留配置

解决方案

先明确核心逻辑:筛选TeemIP中的PC设备,将字段映射为Kea DHCP要求的格式,最终生成包含reservations数组的配置结构。

假设的原始TeemIP输入结构

如果你的数据是类似下面的格式(可根据实际结构调整jq表达式):

{
  "objects": [
    {
      "class": "PC",
      "ip_address": "192.168.1.10",
      "mac_address": "aa:bb:cc:dd:ee:ff",
      "hostname": "desktop-01"
    },
    {
      "class": "PC",
      "ip_address": "192.168.1.11",
      "mac_address": "ff:ee:dd:cc:bb:aa",
      "hostname": "desktop-02"
    }
  ]
}

目标Kea DHCP输出格式

{
  "reservations": [
    {
      "hw-address": "aa:bb:cc:dd:ee:ff",
      "ip-address": "192.168.1.10",
      "hostname": "desktop-01"
    },
    {
      "hw-address": "ff:ee:dd:cc:bb:aa",
      "ip-address": "192.168.1.11",
      "hostname": "desktop-02"
    }
  ]
}

可用的jq命令

jq '{reservations: [.objects[] | select(.class == "PC") | {
  "hw-address": .mac_address,
  "ip-address": .ip_address,
  "hostname": .hostname
}]}' input.json > output.json

命令拆解

  • {reservations: [...]}:构建Kea要求的顶层JSON结构,核心是reservations数组
  • .objects[]:遍历TeemIP返回的所有设备对象
  • select(.class == "PC"):只保留PC类设备,过滤其他类型
  • { "hw-address": .mac_address, ... }:将TeemIP的字段名映射为Kea的标准字段名

适配自定义结构

如果你的原始JSON结构不同:

  • 若设备数组不在objects下,替换为实际的数组路径(比如.data.devices[])
  • 若字段名不一致(比如TeemIP用mac而非mac_address),修改映射的字段名即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 00:54:33