如何在Python中解析SRV记录?

11 投票
4 回答
15788 浏览
提问于 2025-04-15 13:12

最好是一些不依赖于本地库的东西。

4 个回答

7

twisted 有一个非常棒的纯Python实现,具体可以查看 twisted.names 的源代码(特别是 dns.py 这个文件)。如果你不能使用他们的所有代码,也许可以从这个文件中提取并重新利用他们的 Record_SRV 类。

9

使用 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}
11

你可以试试 dnspython 这个库:

撰写回答