概要
dnspython を使うと簡単に実現できます
今回は単純に A レコードの取得を行ってみました
環境
- macOS 10.15.5
- Python 3.8.3
- dnspython 1.16.0
インストール
pipenv install dnspython
サンプルコード
vim test.py
# カスタムのリゾルバを作成
# configure=True にするとデフォルトの DNS がシステムに設定されている DNS になる
resolver = dns.resolver.Resolver(configure=True)
# システム以外の DNS リゾルバを使いたい場合は設定する
resolver.nameservers = ["8.8.8.8", "8.8.4.4"]
# リゾルバを確認するためのデバッグ
print(resolver.nameservers)
try:
# 名前解決できない場合はエラーが発生する
anser = resolver.query("hawksnowlog.blogspot.com", "a")
# Anser -> RRset -> IN.A.A という順番で IP アドレスを取得します
for item in anser.rrset.items:
print(item.address)
except NXDOMAIN as e:
print(e)
dnspython 2.0.0 から anser.rrset.items が dict になっているので注意ください
返信削除