代码拉取完成,页面将自动刷新
同步操作将从 setionlee/DNS缓存服务器 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
"""
-------------------------------------
# @Time : 2021/1/11 17:41
# @Author : ls
# @File : dns_client.py
# @IDE: PyCharm
--------------------------------------
"""
import socket
import time
from utils.read_config import ConfigRead
from utils.package_tools import PackageTools
class DNSClient:
def __init__(self):
conf = ConfigRead()
self.REMOTE_DNS_SERVER_ADDRESS = conf.read_option_value('SERVER_CONFIG', 'REMOTE_DNS_SERVER_ADDRESS')
self.REMOTE_DNS_SERVER_PORT = int(conf.read_option_value('SERVER_CONFIG', 'REMOTE_DNS_SERVER_PORT'))
self.RESPONSE_TIMEOUT = 3
self.BUFFERSIZE = 1024
def query_dns_from_remote_dns_server(self, pkg):
"""
从公网DNS服务器获取解析信息
:param pkg:客户端传入的DNS请求报文
:return:公网DNS服务器响应报文
"""
pt = PackageTools()
pt.package = pkg
domain_name = pt.domain_name()
client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
client.settimeout(self.RESPONSE_TIMEOUT)
client.sendto(pkg, (self.REMOTE_DNS_SERVER_ADDRESS, self.REMOTE_DNS_SERVER_PORT))
while True:
time.sleep(0.001)
try:
server_response_data, server_info = client.recvfrom(self.BUFFERSIZE)
return [True, server_response_data]
except socket.timeout:
return [False, 'DNS server response timeout[{}]'.format(domain_name)]
except ConnectionError:
return [False, '[WinError 10054] 远程主机强迫关闭了一个现有的连接。[{}]'
.format(domain_name)]
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。