¿Cómo resuelvo un registro SRV en Python?

Algo que no dependa de bibliotecas nativas sería mejor.

twisted tiene una excelente implementación de python pura, vea las fonts twisted.names (especialmente dns.py ). Si no puede usar todo su código, tal vez pueda extraer y reutilizar su clase Record_SRV de ese archivo.

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}