Python-network-programming-python-dns-look-up

提供:Dev Guides
移動先:案内検索

Python-DNSルックアップ

IPアドレスは、人間が読める形式または単語に変換されると、ドメイン名として知られるようになります。 ドメイン名のIPアドレスへの変換は、pythonモジュール dnspython によって管理されます。このモジュールは、CNAMEおよびMXレコードを見つけるためのメソッドも提供します。

「A」レコードの検索

以下のプログラムでは、dns.resolverメソッドを使用してドメインのIPアドレスを見つけます。 通常、IPアドレスとドメイン名の間のこのマッピングは、「A」レコードとも呼ばれます。

import dnspython as dns
import dns.resolver

result = dns.resolver.query('finddevguides.com', 'A')
for ipval in result:
    print('IP', ipval.to_text())

上記のプログラムを実行すると、次の出力が得られます-

('IP', u'94.130.81.180')

CNAME値の検索

Canonical Name Recordとも呼ばれるCNAMEレコードは、ドメイン名を別のドメインのエイリアスとしてマップするために使用されるドメインネームシステム(DNS)のレコードの一種です。 CNAMEレコードは常に別のドメイン名を指し、IPアドレスを直接指すことはありません。 以下のクエリメソッドでは、CNAMEパラメータを指定してCNAME値を取得します。

import dnspython as dns
import dns.resolver
result = dns.resolver.query('mail.google.com', 'CNAME')
for cnameval in result:
    print ' cname target address:', cnameval.target

上記のプログラムを実行すると、次の出力が得られます-

cname target address: googlemail.l.google.com.

MXレコードを見つける

メールエクスチェンジャーレコードとも呼ばれるMXレコードは、受信者のドメインに代わって電子メールメッセージを受け入れる責任があるメールサーバーを指定するドメインネームシステムのリソースレコードです。 また、複数のメールサーバーが利用可能な場合、メール配信の優先順位付けに使用される設定値も設定します。 上記のプログラムと同様に、クエリメソッドの「MX」パラメーターを使用してMXレコードの値を見つけることができます。

result = dns.resolver.query('mail.google.com', 'MX')
for exdata in result:
    print ' MX Record:', exdata.exchange.text()

上記のプログラムを実行すると、次の出力が得られます-

MX Record:  ASPMX.L.GOOGLE.COM.
MX Record:  ALT1.ASPMX.L.GOOGLE.COM.
MX Record:  ALT2.ASPMX.L.GOOGLE.COM.

上記はサンプル出力であり、正確なものではありません。