libresolv を使用してドメインの権限のあるネームサーバーのリストを取得し、それらのネームサーバーの 1 つに直接クエリを実行してホストを解決しています。
そうすれば、A レコードに設定された TTL を取得でき、その TTL でコード内の DNS レコードを更新することを選択できます。
ただし、CNAMES を参照するホストを処理する方法がわからないという点で問題が発生しました。たとえば、 からの出力はwww.microsoft.com
次のようになります。
; <<>> DiG 9.7.3 <<>> www.microsoft.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3870
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 8, ADDITIONAL: 7
;; QUESTION SECTION:
;www.microsoft.com. IN A
;; ANSWER SECTION:
www.microsoft.com. 5 IN CNAME toggle.www.ms.akadns.net.
toggle.www.ms.akadns.net. 5 IN CNAME www.microsoft.com-c.edgekey.net.
www.microsoft.com-c.edgekey.net. 5 IN CNAME www.microsoft.com-c.edgekey.net.globalredir.akadns.net.
www.microsoft.com-c.edgekey.net.globalredir.akadns.net. 5 IN CNAME e10088.dspb.akamaiedge.net.
e10088.dspb.akamaiedge.net. 5 IN A 23.194.222.159
CNAME TTL を使用してホストを更新する必要がありますか? その場合、CNAME に設定された TTL を取得するにはどうすればよいですか?
または、CNAME にリンクされている A レコード (つまりe10088.dspb.akamaiedge.net
) を使用して使用を更新する必要がありますか? その場合、そのホストに設定された TTL を取得するにはどうすればよいですか?
専門家が提供できる情報は大歓迎です。