|
本帖最后由 kmdyc 于 2024-4-3 14:08 编辑
最近在使用企业dns的时候发现360dns 和OneDns 都可注册DNS管理后台,所以想先在家里试用,但因为pppoe拨号获取的是动态ip,DNS后台需要通过一个动态端口注册的python程序将pppoe获得的ip注册到dns服务端以识别和过滤来自该端口的dns请求(感觉有点象adguardhome,提供dns识别和过滤)
所以想请熟悉ros的各位大佬看下这几个python命令在ros有替代的命令吗?
- def get_dynamic_domain(self):
- timestamp = str(int(time.time()))
- signdata = str(self._requester_id) + timestamp
- signbytes = hmac.new(self._agent_secret.encode("utf-8"), signdata.encode("utf-8"), hashlib.sha1).digest()
- sign = base64.b64encode(signbytes).decode().strip(r'=+')
- sign = re.sub('([^a-zA-Z0-9])', '', sign)
- return "{}.{}.{}.dynamic-track.onedns.net".format(sign, timestamp, self._requester_id)
- def get_heartbeat_url(self):
- return "{}/api/network/dynamic/heartbeat?{}".format(self._server, self.get_url_sign_params())
- def get_download_url(self):
- return "{}//api/network/dynamic/download?{}".format(self._server, self.get_url_sign_params())
- def get_url_sign_params(self):
- timestamp = str(int(time.time()))
- signdata = str(self._requester_id) + timestamp
- signbytes = hmac.new(self._agent_secret.encode("utf-8"), signdata.encode("utf-8"), hashlib.sha1).digest()
- sign = base64.urlsafe_b64encode(signbytes).decode().strip(r'=+')
- return "api_key={}&auth_timestamp={}&sign={}".format(self._requester_id, timestamp, sign)
复制代码 这段的意思大致是使用时间信息和服务器注册信息 使用base64的方式生成字符串,然后填充到http网址信息里,最后访问这个网址进行注册。中间还有个hmac的啥编码过程,还没搞懂是做什么处理。中间两段是网址处理组合的过程。
|
|