如何解决使用python获取顶级域的所有子域
我想列出给定二级域的所有子域。顶级域 (2LD.1LD) ,例如 Public Function GetRowNoSearchTwoColumns(Sht As Worksheet,_
StringToFind1 As String,ColumnNumber1 As Integer,_
StringToFind2 As String,ColumnNumber2 As Integer) As Long
On Error GoTo GetRowNoSearchTwoColumns_CleanUp_ErrorCheck
Dim OldReferenceStyle As XlReferenceStyle
Dim SheetUsedRange As Range
Dim LastRow As Long
Dim LastCol As Integer
Dim CompleteRange As Range
Dim StrFormula As String
OldReferenceStyle = Application.ReferenceStyle
Application.ReferenceStyle = xlR1C1
' Avoid problems if first row is empty,or first N rows (same problem with columns too)
Set SheetUsedRange = Sht.UsedRange
LastRow = SheetUsedRange.Row + SheetUsedRange.Rows.Count - 1
LastCol = SheetUsedRange.Column + SheetUsedRange.Columns.Count - 1
Set CompleteRange = Sht.Range(Sht.Cells(1,1),Sht.Cells(LastRow,LastCol))
StrFormula = "=MATCH(""" & StringToFind1 & """&""" & StringToFind2 & """," & _
"'" & Sht.Name & "'!" & CompleteRange.Columns(ColumnNumber1).Address(ReferenceStyle:=xlR1C1) & "&" & _
"'" & Sht.Name & "'!" & CompleteRange.Columns(ColumnNumber2).Address(ReferenceStyle:=xlR1C1) & ",0)"
GetRowNoSearchTwoColumns = Application.Evaluate(StrFormula)
GetRowNoSearchTwoColumns_CleanUp_ErrorCheck:
' CleanUp
Application.ReferenceStyle = OldReferenceStyle
Set SheetUsedRange = Nothing
Set CompleteRange = Nothing
If Err.Number <> 0 Then
GetRowNoSearchTwoColumns = 0
End If
End Function
或 .edu.uk
by python
我在 python 中使用 .gov.us
包
dns
但它不能用于 import dns.resolver
answers = dns.resolver.query('stackoverflow.com','MX')
for rdata in answers:
print('Host',rdata.exchange,'has preference',rdata.preference)
我也使用 dns.resolver.query('edu.uk','MX')
googlesearch
但它只响应 100 个结果。
我想要一个包含所有子域的结果(我认为这是一个非常大的结果)。我能怎么做?谢谢大家
解决方法
简单的答案:你不能。无论级别如何,都无法查询整个域的内容。有些(只有少数,如根)允许您使用 AXFR 传输来传输区域(如果您安装了绑定实用程序,请尝试:dig @b.root-servers.net axfr .
)。但总的来说,DNS 协议现在确实允许您始终获取 DNS 记录树的内容。您可以猜测其中的一些,例如您在上图中认为某些区域内可能有 MX
记录,这通常是正确的(例外示例:没有 TLD 具有 MX
记录)。您可以猜测大多数域确实有带有 www
或 A
记录的 AAAA
前缀,但即使如此也不能确定。
简而言之:您的问题不在于 python,而在于 DNS 协议本身。如果该区域的所有者不希望您这样做,则无法以任何语言获得区域内容的完整列表。
[旁注:带有 NSEC 不存在记录证明的 DNSSEC 签名区域允许您“行走”记录名称的区域,但我不建议您通常尝试滥用此功能——我们运行DNS 扫描器,甚至我们在查找签名域时也不使用这种方法——这会导致大量合法的仇恨电子邮件]
,有些网站有一个 /robot.txt 来列出供 google 抓取的网址。如果允许,另一种方法是使用 burpsuite 和子域列表来扫描它们。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。