Pergunta

Algo que não depende das bibliotecas nativas seria melhor.

Foi útil?

Outras dicas

torcido tem uma excelente implementação pura pura, veja Twisted.names fontes (especialmente dns.py). Se você não pode usar todo o código deles, talvez possa extrair e redirecionar o seu Record_SRV classe desse arquivo.

Usando pydns:

import DNS
DNS.ParseResolvConf()
srv_req = DNS.Request(qtype = 'srv')
srv_result = srv_req.req('_ldap._tcp.example.org')

for result in srv_result.answers:
    if result['typename'] == 'SRV':
        print result['data']

Usando dnspython:

>>> import dns.resolver
>>> domain='jabberzac.org'
>>> srvInfo = {}
>>> srv_records=dns.resolver.query('_xmpp-client._tcp.'+domain, 'SRV')
>>> for srv in srv_records:
...     srvInfo['weight']   = srv.weight
...     srvInfo['host']     = str(srv.target).rstrip('.')
...     srvInfo['priority'] = srv.priority
...     srvInfo['port']     = srv.port
... 
>>> print srvInfo
{'priority': 0, 'host': 'xmpp.jabberzac.org', 'port': 5222, 'weight': 0}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top