找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 247|回复: 0

[Router OS] oneDns 动态端口注册问题

[复制链接]
本帖最后由 kmdyc 于 2024-4-3 14:08 编辑

最近在使用企业dns的时候发现360dns 和OneDns 都可注册DNS管理后台,所以想先在家里试用,但因为pppoe拨号获取的是动态ip,DNS后台需要通过一个动态端口注册的python程序将pppoe获得的ip注册到dns服务端以识别和过滤来自该端口的dns请求(感觉有点象adguardhome,提供dns识别和过滤)

所以想请熟悉ros的各位大佬看下这几个python命令在ros有替代的命令吗?

  1. def get_dynamic_domain(self):
  2.     timestamp = str(int(time.time()))
  3.     signdata = str(self._requester_id) + timestamp
  4.     signbytes = hmac.new(self._agent_secret.encode("utf-8"), signdata.encode("utf-8"), hashlib.sha1).digest()
  5.     sign = base64.b64encode(signbytes).decode().strip(r'=+')
  6.     sign = re.sub('([^a-zA-Z0-9])', '', sign)
  7.     return "{}.{}.{}.dynamic-track.onedns.net".format(sign, timestamp, self._requester_id)

  8. def get_heartbeat_url(self):
  9.     return "{}/api/network/dynamic/heartbeat?{}".format(self._server, self.get_url_sign_params())

  10. def get_download_url(self):
  11.     return "{}//api/network/dynamic/download?{}".format(self._server, self.get_url_sign_params())

  12. def get_url_sign_params(self):
  13.     timestamp = str(int(time.time()))
  14.     signdata = str(self._requester_id) + timestamp
  15.     signbytes = hmac.new(self._agent_secret.encode("utf-8"), signdata.encode("utf-8"), hashlib.sha1).digest()
  16.     sign = base64.urlsafe_b64encode(signbytes).decode().strip(r'=+')
  17.     return "api_key={}&auth_timestamp={}&sign={}".format(self._requester_id, timestamp, sign)
复制代码
这段的意思大致是使用时间信息和服务器注册信息 使用base64的方式生成字符串,然后填充到http网址信息里,最后访问这个网址进行注册。中间还有个hmac的啥编码过程,还没搞懂是做什么处理。中间两段是网址处理组合的过程。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-22 04:41

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表