406
457
return resolve.ResolverChain(L)
408
459
theResolver = None
409
def _makeLookup(method):
410
def lookup(*a, **kw):
412
if theResolver is None:
414
theResolver = createResolver()
416
theResolver = createResolver(servers=[('127.0.0.1', 53)])
418
return getattr(theResolver, method)(*a, **kw)
421
for method in common.typeToMethod.values():
422
globals()[method] = _makeLookup(method)
425
getHostByName = _makeLookup('getHostByName')
462
Get a Resolver instance.
464
Create twisted.names.client.theResolver if it is C{None}, and then return
470
if theResolver is None:
472
theResolver = createResolver()
474
theResolver = createResolver(servers=[('127.0.0.1', 53)])
477
def getHostByName(name, timeout=None, effort=10):
479
Resolve a name to a valid ipv4 or ipv6 address.
481
Will errback with C{DNSQueryTimeoutError} on a timeout, C{DomainError} or
482
C{AuthoritativeDomainError} (or subclasses) on other errors.
485
@param name: DNS name to resolve.
487
@type timeout: Sequence of C{int}
488
@param timeout: Number of seconds after which to reissue the query.
489
When the last timeout expires, the query is considered failed.
492
@param effort: How many times CNAME and NS records to follow while
497
return getResolver().getHostByName(name, timeout, effort)
499
def lookupAddress(name, timeout=None):
501
Perform an A record lookup.
504
@param name: DNS name to resolve.
506
@type timeout: Sequence of C{int}
507
@param timeout: Number of seconds after which to reissue the query.
508
When the last timeout expires, the query is considered failed.
512
return getResolver().lookupAddress(name, timeout)
514
def lookupIPV6Address(name, timeout=None):
516
Perform an AAAA record lookup.
519
@param name: DNS name to resolve.
521
@type timeout: Sequence of C{int}
522
@param timeout: Number of seconds after which to reissue the query.
523
When the last timeout expires, the query is considered failed.
527
return getResolver().lookupIPV6Address(name, timeout)
529
def lookupAddress6(name, timeout=None):
531
Perform an A6 record lookup.
534
@param name: DNS name to resolve.
536
@type timeout: Sequence of C{int}
537
@param timeout: Number of seconds after which to reissue the query.
538
When the last timeout expires, the query is considered failed.
542
return getResolver().lookupAddress6(name, timeout)
544
def lookupMailExchange(name, timeout=None):
546
Perform an MX record lookup.
549
@param name: DNS name to resolve.
551
@type timeout: Sequence of C{int}
552
@param timeout: Number of seconds after which to reissue the query.
553
When the last timeout expires, the query is considered failed.
557
return getResolver().lookupMailExchange(name, timeout)
559
def lookupNameservers(name, timeout=None):
561
Perform an NS record lookup.
564
@param name: DNS name to resolve.
566
@type timeout: Sequence of C{int}
567
@param timeout: Number of seconds after which to reissue the query.
568
When the last timeout expires, the query is considered failed.
572
return getResolver().lookupNameservers(name, timeout)
574
def lookupCanonicalName(name, timeout=None):
576
Perform a CNAME record lookup.
579
@param name: DNS name to resolve.
581
@type timeout: Sequence of C{int}
582
@param timeout: Number of seconds after which to reissue the query.
583
When the last timeout expires, the query is considered failed.
587
return getResolver().lookupCanonicalName(name, timeout)
589
def lookupMailBox(name, timeout=None):
591
Perform an MB record lookup.
594
@param name: DNS name to resolve.
596
@type timeout: Sequence of C{int}
597
@param timeout: Number of seconds after which to reissue the query.
598
When the last timeout expires, the query is considered failed.
602
return getResolver().lookupMailBox(name, timeout)
604
def lookupMailGroup(name, timeout=None):
606
Perform an MG record lookup.
609
@param name: DNS name to resolve.
611
@type timeout: Sequence of C{int}
612
@param timeout: Number of seconds after which to reissue the query.
613
When the last timeout expires, the query is considered failed.
617
return getResolver().lookupMailGroup(name, timeout)
619
def lookupMailRename(name, timeout=None):
621
Perform an MR record lookup.
624
@param name: DNS name to resolve.
626
@type timeout: Sequence of C{int}
627
@param timeout: Number of seconds after which to reissue the query.
628
When the last timeout expires, the query is considered failed.
632
return getResolver().lookupMailRename(name, timeout)
634
def lookupPointer(name, timeout=None):
636
Perform a PTR record lookup.
639
@param name: DNS name to resolve.
641
@type timeout: Sequence of C{int}
642
@param timeout: Number of seconds after which to reissue the query.
643
When the last timeout expires, the query is considered failed.
647
return getResolver().lookupPointer(name, timeout)
649
def lookupAuthority(name, timeout=None):
651
Perform an SOA record lookup.
654
@param name: DNS name to resolve.
656
@type timeout: Sequence of C{int}
657
@param timeout: Number of seconds after which to reissue the query.
658
When the last timeout expires, the query is considered failed.
662
return getResolver().lookupAuthority(name, timeout)
664
def lookupNull(name, timeout=None):
666
Perform a NULL record lookup.
669
@param name: DNS name to resolve.
671
@type timeout: Sequence of C{int}
672
@param timeout: Number of seconds after which to reissue the query.
673
When the last timeout expires, the query is considered failed.
677
return getResolver().lookupNull(name, timeout)
679
def lookupWellKnownServices(name, timeout=None):
681
Perform a WKS record lookup.
684
@param name: DNS name to resolve.
686
@type timeout: Sequence of C{int}
687
@param timeout: Number of seconds after which to reissue the query.
688
When the last timeout expires, the query is considered failed.
692
return getResolver().lookupWellKnownServices(name, timeout)
694
def lookupService(name, timeout=None):
696
Perform an SRV record lookup.
699
@param name: DNS name to resolve.
701
@type timeout: Sequence of C{int}
702
@param timeout: Number of seconds after which to reissue the query.
703
When the last timeout expires, the query is considered failed.
707
return getResolver().lookupService(name, timeout)
709
def lookupHostInfo(name, timeout=None):
711
Perform a HINFO record lookup.
714
@param name: DNS name to resolve.
716
@type timeout: Sequence of C{int}
717
@param timeout: Number of seconds after which to reissue the query.
718
When the last timeout expires, the query is considered failed.
722
return getResolver().lookupHostInfo(name, timeout)
724
def lookupMailboxInfo(name, timeout=None):
726
Perform an MINFO record lookup.
729
@param name: DNS name to resolve.
731
@type timeout: Sequence of C{int}
732
@param timeout: Number of seconds after which to reissue the query.
733
When the last timeout expires, the query is considered failed.
737
return getResolver().lookupMailboxInfo(name, timeout)
739
def lookupText(name, timeout=None):
741
Perform a TXT record lookup.
744
@param name: DNS name to resolve.
746
@type timeout: Sequence of C{int}
747
@param timeout: Number of seconds after which to reissue the query.
748
When the last timeout expires, the query is considered failed.
752
return getResolver().lookupText(name, timeout)
754
def lookupResponsibility(name, timeout=None):
756
Perform an RP record lookup.
759
@param name: DNS name to resolve.
761
@type timeout: Sequence of C{int}
762
@param timeout: Number of seconds after which to reissue the query.
763
When the last timeout expires, the query is considered failed.
767
return getResolver().lookupResponsibility(name, timeout)
769
def lookupAFSDatabase(name, timeout=None):
771
Perform an AFSDB record lookup.
774
@param name: DNS name to resolve.
776
@type timeout: Sequence of C{int}
777
@param timeout: Number of seconds after which to reissue the query.
778
When the last timeout expires, the query is considered failed.
782
return getResolver().lookupAFSDatabase(name, timeout)
784
def lookupZone(name, timeout=None):
786
Perform an AXFR record lookup.
789
@param name: DNS name to resolve.
791
@type timeout: C{int}
792
@param timeout: When this timeout expires, the query is considered failed.
796
# XXX: timeout here is not a list of ints, it is a single int.
797
return getResolver().lookupZone(name, timeout)
799
def lookupAllRecords(name, timeout=None):
804
@param name: DNS name to resolve.
806
@type timeout: Sequence of C{int}
807
@param timeout: Number of seconds after which to reissue the query.
808
When the last timeout expires, the query is considered failed.
812
return getResolver().lookupAllRecords(name, timeout)