我正在尋找一個Python實作,允許我使用DNS(EDNS)“客戶端子選項”的擴展來決議DNS地址.此選項允許更好的DNS決議內容交付系統 – 并最終,更快的互聯網路由.這里的動機更好解釋:http://www.afasterinternet.com/howitworks.htm
另一個名字是“vandergaast-edns-client-subnet”
這里有一個挖掘實作:https://www.gsic.uva.es/~jnisigl/dig-edns-client-subnet.html
我正在尋找一個可以做同樣的python實作.
uj5u.com熱心網友回復:
我是dnspython-clientsubnet的開發者/維護者.它被設計為在您的代碼中用作dnspython的添加劑.我剛剛發布了2.0.0版本(在嘗試做你想做的事情之后),這使得一切變得更加容易> pip install clientsubnetoption(適用于Python2和Python3)>匯入您需要的客戶端選擇和依賴:
import dns
import clientsubnetoption
>使用您想要的資訊設定ClientSubnetOption:
cso = clientsubnetoption.ClientSubnetOption('1.2.3.4')
>創建您的DNS資料包:
message = dns.message.make_query('google.com', 'A')
>添加edns選項:
message.use_edns(options=[cso])
>使用訊息進行查詢:
r = dns.query.udp(message, '8.8.8.8')
>選項資訊現在位于r.options并且可能有多個,因此您可能需要遍歷它們才能找到ClientSubnetOption物件.
for options in r.options:
if isinstance(options, ClientSubnetOption):
# do stuff here
pass
clientsubnetoption.py中的代碼用作單元測驗和支持edns-clientsubnet的測驗工具,而不是因為你必須以這種方式使用它.
uj5u.com熱心網友回復:
我使用這個庫測驗騰迅的公網dns 119.29.29.29無法決議,測驗8.8.8.8可以使用。這是為什么轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/83963.html
標籤:其他技術討論專區
