分享 阿里动态域名解析 安卓版和windows

titan_ysl 2018-02-22 03:11:45
前段时间做了一个医疗仪器的安卓软件,用家里的旧安卓手机做了服务器,用的是阿里云的域名服务,我的公网ip是动态的,平时还是很稳定的,只要不关wifi,一般就不会变化,可有一段时间,明明没有断电,公网ip却两三天变一次,甚至一天变几次,这严重影响了客户的访问。阿里云提供的控制台软件只能手动设置域名对应的ip,不能自动更新。网上有大把windows的动态域名解析版本,却没看到有安卓用的。我便想有了自己做一个的想法。春节期间正好有空,于是做了这个软件。

我是用c++builder xe来做的,有两种方式可以调用阿里云的服务,一种是用http方式直接和dns服务器通讯,一种是用阿里云提供的安卓的SDK开发包来做。用SDK来做调用简单,是几句话就能搞定的事,可是在实际使用时,一个jar包搞不定,用到的阿里云的jar包还调用别的外部的jar包,于是这下捅了马蜂窝,由本来只缺的一个包,从其申名中找到另一个包,那个包却缺更多的jar包的支持,又得去找更多的来,于是,三姑婆六姨妈的来了一大堆,还没看到尽头... 这个我惹不起还躲不起,我不用了还行不行?接下来我换用http方式使用阿里云的http api规则来调用dns的服务,这下清静了,只需关注api规则的实现,别的外部资源都不需要装了。

说到这里,吐槽一下,也不知到阿里密匙的签名(Signature)机制是谁写的,非常别扭,和多数人的思维不一样,关键地方还语意模糊,一下带过,不做强调,不小心就会弄错。如这里 https://help.aliyun.com/document_detail/29747.html?spm=a2c4g.11186623.2.3.pugYas 的这句话。“percentEncode(CanonicalizedQueryString)是对第1步中构造的规范化请求字符串按1.b中描述的URL编码规则编码后得到的字符串。”,我死了无数脑细胞才看懂,本了就规范化了的字串,就因为加了几个符号,就还要再规范化一次,又费马达又费电,有这个必要吗? 还有这句,“a) 按照参数名称的字典顺序对请求中所有的请求参数(包括文档中描述的“公共请求参数”和给定了的请求接口的自定义参数,但不能包括“公共请求参数”中提到Signature参数本身)进行排序” 干脆就没有说明真正的规则,字典顺序?字典中大A和小a有说明谁排在前吗?只要是a,不管大小大写都比b小,还是大写字符都比小写的小?这些都没说明,得自己去不断的试错... 最后才知道是按字符内码的值排的序!另外这句 “ ii. 对于其他字符编码成“%XY”的格式,其中XY是字符对应ASCII码的16进制表示。” 这个16进制中,a,b,c,d,e,f是使用大写还是小写也没有说明,怪不得网上一大堆签名通不过的!!!

历经曲折,本来别的开发软件用sdk开发包一两天就能写好的代码,c++builder xe上,我用http api,恁是用了好多天的时间才做好。聊以自慰的是编译出了两个平台的版本,本来苹果版也能做的,我没用苹果的,也就没编译。下面是软件的下载地址,有需要的可下载来用,有问题就跟贴好了。

阿里动态域名解析 安卓版和windows
https://pan.baidu.com/s/1smvZidZ
...全文
2489 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
yiwanlingyi 2020-03-25
  • 打赏
  • 举报
回复
获取ip速度很快,网页也能正常浏览,怎么会出现连接超时的提示呢?
yiwanlingyi 2020-03-25
  • 打赏
  • 举报
回复
大佬,我的显示:意外错误:提交到服务端出错
逦冬绪 2020-02-17
  • 打赏
  • 举报
回复
大佬,请教一下,我是miui,自动获取的ip总是127.0.0.1。而且域名前也不能加主机名,会报错。
goliards 2019-12-05
  • 打赏
  • 举报
回复
抱歉问一下,我使用了二级域名解析但是一直报错,错误原因说域名不存在,我域名前缀没有http前缀,如果一级域名就能解析,请问下具体还有什么问题嘛?感谢啊
Yul-docoter 2019-05-30
  • 打赏
  • 举报
回复
现在家里宽带都支持ipv6了
龙城7788 2019-04-29
  • 打赏
  • 举报
回复
大佬,能不能做个IPv6的啊
titan_ysl 2019-04-01
  • 打赏
  • 举报
回复
先前的版本自动解析还是有问题,现在这个改正确了。 链接: https://pan.baidu.com/s/1eRm3ZzlT6droNH40G0Vt9g 提取码: aycb
hacbu80 2019-03-22
  • 打赏
  • 举报
回复
引用 15 楼 titan_ysl 的回复:
上次的版本改错了几处地方,导致不能自动解析了,现改正后重新发。
链接: https://pan.baidu.com/s/1dJFa063JIaYPRTKoT3HD2Q 提取码: 7uja

@hacbu80, 先前已说过,要解析的域名不能带http:// 这样的前缀,如https://bbs.csdn.net,要写成bbs.csdn.net 另外,手机网络是没有独立的IP的,即使进行了域名解析,别人也不能通过IP地址访问你的手机的。


好的,非常感谢解答,看来还是要做内网穿透才行。。
titan_ysl 2019-03-22
  • 打赏
  • 举报
回复
上次的版本改错了几处地方,导致不能自动解析了,现改正后重新发。 链接: https://pan.baidu.com/s/1dJFa063JIaYPRTKoT3HD2Q 提取码: 7uja @hacbu80, 先前已说过,要解析的域名不能带http:// 这样的前缀,如https://bbs.csdn.net,要写成bbs.csdn.net 另外,手机网络是没有独立的IP的,即使进行了域名解析,别人也不能通过IP地址访问你的手机的。
hacbu80 2019-03-21
  • 打赏
  • 举报
回复
引用 10 楼 titan_ysl 的回复:
现在带有域名解析的程序会被封,所以程序改名为 “阿里云域名对应ip提交工具”
新的下载地址:https://pan.baidu.com/s/1dZp6uZvXc6vWmATFBAnhmA

楼上的,非常抱歉,现在才看到你的问题,出错的提示意思是说:阿里云在解析时发现你的域名不存在,不过其实在程序中,你输入的域名的右边,就有解释的,你点 那个?号,就能看到提示中有说明,地址中不要带 http:// 这样的前缀的。


我用的是直接手机网络,没用WIFI,不知道那有问题


HTTP error:
ErrorCode:400
Message:HTTP/1.1 400 Bad Request
ErrorMessage:{"RequestId":"2A2D895D-BD43-45A0-A380-D42D04F6E40D","HostId":"alidns.aliyuncs.com","Code":"InvalidDomainName.NoExist","Message":"The specified domain name does not exist. Refresh the page and try again."}

搞不懂
我用小米6X
titan_ysl 2019-02-15
  • 打赏
  • 举报
回复
这个安卓版的,因为用户要使用,肯定会想其在开机后,自动就启动的,所以我在里面加了开机自启动代码,但这个功能代码被杀毒软件认为是恶意代码了。 
weixin_42618320 2019-01-23
  • 打赏
  • 举报
回复
你发布的软件包被检出病毒。
我利用在线检测网站,软件包里的安卓版文件aliYuMiJieXi.apk被检测出 PUP.HighConfidence
详见在线结果https://www.virustotal.com/zh-cn/file/86f285833310a534f4f5c54e4de6ed07322cbe9e9fbe0ff1d878fc3d6d03ba1c/analysis/1548172387/

会不会你的开发环境或者打包文件中招了,能否重新检查编译重新分享下,谢。
哼哼哈嘿~~~ 2018-11-10
  • 打赏
  • 举报
回复
有多个二级域名就无法解析了,只能填一个子域名,建议可以添加更多域名
titan_ysl 2018-11-08
  • 打赏
  • 举报
回复
现在带有域名解析的程序会被封,所以程序改名为 “阿里云域名对应ip提交工具” 新的下载地址:https://pan.baidu.com/s/1dZp6uZvXc6vWmATFBAnhmA 楼上的,非常抱歉,现在才看到你的问题,出错的提示意思是说:阿里云在解析时发现你的域名不存在,不过其实在程序中,你输入的域名的右边,就有解释的,你点 那个?号,就能看到提示中有说明,地址中不要带 http:// 这样的前缀的。
S.M.A.R.T. 2018-07-26
  • 打赏
  • 举报
回复
账号信息及域名 没有错误 在sh脚本下可以正常更新。
S.M.A.R.T. 2018-07-26
  • 打赏
  • 举报
回复
S.M.A.R.T. 2018-07-26
  • 打赏
  • 举报
回复
报错 用不了 有最新的吗谢谢!
Geoffrior 2018-05-21
  • 打赏
  • 举报
回复
好的,谢谢我试试看,,,之前我在一级域名前加了自定义的二级域名,就是一些字母的组合,在阿里云控制台没有提前添加这么一条记录,然后它报错了,,是不是二级域名只能是一些常见的,www,bbs这些?
titan_ysl 2018-05-21
  • 打赏
  • 举报
回复
xxxx.xxx的格式是一级域名,主机纪录程序自动填@,xxxx.xxxx.xxxx是二级域名,主机纪录是第一组的xxxx。域名必须先存在,程序只能给域名增加用于解析的ip地址,不能新增域名。不知程序报的是什么错,你能贴出来吗?
titan_ysl 2018-05-18
  • 打赏
  • 举报
回复
呵呵,程序对你输人的域名做了处理的,能识别二级域名的,在待解析的域名处不是有个 ?号吗,那里就有说明。像 bbs.csdn.net 这类的二级域名也有支持的。 原先的版本有个小bug,好像是在不同两个机器上都安装,其中一个程序在修改了域名后,另一个程序再打开时会出错,导致无法启动。这个版本修正了这个问题。 https://pan.baidu.com/s/1EVsTs4uuBohCAbwPvUeAbA
加载更多回复(3)

552

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 茶馆
社区管理员
  • 茶馆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧