def query(self, qname, rdtype=dns.rdatatype.A, rdclass=dns.rdataclass.IN, tcp=False, source=None, raise_on_no_answer=True, source_port=0, lifetime=None):
“”"Query nameservers to find the answer to the question.
请求服务器返回答案
The qname, rdtype, and rdclass parameters may be objects of the appropriate type, or strings that can be converted into objects of the appropriate type.
qname, a dns.name.Name
or text
, the query name.
qname是请求的域名,如www.baidu.com
rdtype, an int
or text
, the query type.
rdtype是dns查询的类型,通常为 “A”记录
rdclass, an int
or text
, the query class.
rdclass 表示要查询地址的类 ,一般是 “IN”。
tcp, a bool
. If True
, use TCP to make the query.
是否用tcp
source, a text
or None
. If not None
, bind to this IP address when making queries.
源地址
raise_on_no_answer, a bool
. If True
, raise dns.resolver.NoAnswer
if there’s no answer to the question.
如果没有答案且这个设置true, 则raise NoAnswer
source_port, an int
, the port from which to send the message.
源端口
lifetime, a float
, how long query should run before timing out.
各种结果:
Raises dns.exception.Timeout
if no answers could be found in the specified lifetime.
Raises ``dns.resolver.NXDOMAIN`` if the query name does not exist.
Raises ``dns.resolver.YXDOMAIN`` if the query name is too long after DNAME substitution.
Raises ``dns.resolver.NoAnswer`` if *raise_on_no_answer* is ``True`` and the query name exists but has no RRset of the desired type and class.
Raises ``dns.resolver.NoNameservers`` if no non-broken nameservers are available to answer the question.
Returns a ``dns.resolver.Answer`` instance.
"""