Hibariya

だいたい合ってるホスト

最近 DNS サービスを Zerigo に変更したところ、REST API もあるらしいということを知る。

Introduction and Overview | REST API v1.1 | Managed DNS Documentation | Support | Zerigo

自宅で常時起動しているマシンにサブドメインを割り振ったけど、たまに IP アドレスが変わるので適当に更新しておいてほしい。急がないけどかんたんに済ませたい。という用途にてっとり早く役立った。

#!/bin/sh

# 新しいのを教えてもらって
ip_address=$(
  curl \
    --basic --user "${ZERIGO_USER_NAME}:${ZERIGO_API_KEY}" \
    http://ns.zerigo.com/api/1.1/tools/public_ipv4.xml \
    | sed -e "s/<\/\?ipv4>//g"
)

# それをそのままお返し
curl \
  --request PUT \
  --header 'Content-Type: application/xml' \
  --data "<host><data>${ip_address}</data></host>" \
  --basic --user "${ZERIGO_USER_NAME}:${ZERIGO_API_KEY}" \
  http://ns.zerigo.com/api/1.1/hosts/${HOST_ID}.xml

HOST_ID の部分を得るために、次の手順で API に問い合わせた。

たまに叩くようにしておけばだいたい合ってる。