MCPcopy Create free account
hub / github.com/rthalley/dnspython / zone_for_name

Function zone_for_name

dns/asyncresolver.py:364–397  ·  view source on GitHub ↗

Find the name of the zone which contains the specified name. See :py:func:`dns.resolver.Resolver.zone_for_name` for more information on the parameters and possible exceptions.

(
    name: dns.name.Name | str,
    rdclass: dns.rdataclass.RdataClass = dns.rdataclass.IN,
    tcp: bool = False,
    resolver: Resolver | None = None,
    backend: dns.asyncbackend.Backend | None = None,
)

Source from the content-addressed store, hash-verified

362
363
364async def zone_for_name(
365 name: dns.name.Name | str,
366 rdclass: dns.rdataclass.RdataClass = dns.rdataclass.IN,
367 tcp: bool = False,
368 resolver: Resolver | None = None,
369 backend: dns.asyncbackend.Backend | None = None,
370) -> dns.name.Name:
371 """Find the name of the zone which contains the specified name.
372
373 See :py:func:`dns.resolver.Resolver.zone_for_name` for more
374 information on the parameters and possible exceptions.
375 """
376
377 if isinstance(name, str):
378 name = dns.name.from_text(name, dns.name.root)
379 if resolver is None:
380 resolver = get_default_resolver()
381 if not name.is_absolute():
382 raise NotAbsolute(name)
383 while True:
384 try:
385 answer = await resolver.resolve(
386 name, dns.rdatatype.SOA, rdclass, tcp, backend=backend
387 )
388 assert answer.rrset is not None
389 if answer.rrset.name == name:
390 return name
391 # otherwise we were CNAMEd or DNAMEd and need to look higher
392 except (NXDOMAIN, NoAnswer):
393 pass
394 try:
395 name = name.parent()
396 except dns.name.NoParent: # pragma: no cover
397 raise NoRootSOA
398
399
400async def make_resolver_at(

Callers

nothing calls this directly

Calls 6

NotAbsoluteClass · 0.90
is_absoluteMethod · 0.80
parentMethod · 0.80
get_default_resolverFunction · 0.70
from_textMethod · 0.45
resolveMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…