Skip to content

V1Eerie/AliDDNS_ShellScript_For_Termux

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 

Repository files navigation

AliDDNSBash

介绍

阿里云(万网)的域名解析服务提供了一种API,可通过HTTP访问动态修改解析地址,以实现DDNS的功能。但是缺少了Shell版本。

本Shell脚本仅实现调用修改域名解析记录获取解析记录列表的API的功能,没有完整实现整个SDK。

本脚本在OpenWRT以及Termux中测试通过。

参考:阿里云解析API文档

功能

  • 能在 OpenWRT 上原生的 ash 中执行。

  • 能在 Termux 上原生的 Bash 中执行。

  • 仅在当前IP地址和域名解析设置不同时,发起更新请求。

  • 本机当前IP地址通过ipify提供的公益API进行查询(获取的是ipv6地址,ipv4地址请使用3322.org提供的API

使用方法

  1. 安装依赖

首先需要一个shell(目标是支持所有符合 POSIX 标准的 shell,在 ashbash 上测试通过)。

然后安装curlopenssl-util。这些软件包在OpenWRT下可直接使用 opkg 命令安装。

  1. 修改脚本的setting代码段,其中DomainRecordId不清楚的话暂时不用修改,DNSServer修改为你在万网上使用的DNS服务器。如:
AccessKeyId="MyID"
AccessKeySec="MySecret"
DomainRecordId="00000"
DomainRR="www"
DomainName="example.com"
DomainType="A"
DNSServer="dns9.hichina.com"
  1. 如果不清楚DomainRecordId的话,修改main函数,在里面调用describe_record,如:
	main()
	{
		describe_record
		#update_record
	}

然后执行这个脚本。如果没问题的话,就能获取到域名的所有解析记录的列表了:

{"PageNumber":1,"TotalCount":1,"PageSize":1,"RequestId":"0000","DomainRecords":
  {"Record":[{"RR":"www","Status":"ENABLE","Value":"8.8.8.8",
  "RecordId":"21332133","Type":"A","DomainName":"example.com",
  "Locked":false,"Line":"default","TTL":"600"},]}
  }HttpCode:200

上面的结果中,RecordId为21332133。得到结果后再修改DomainRecordId为正确的值。

  1. 修改main函数:
	main()
	{
		#describe_record
		update_record
	}

执行脚本即可。脚本会在本机IP地址和当前域名解析设置不同的时候调用API更新设置。

About

阿里云域名解析动态更新(DDNS)的 Shell 脚本

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Shell 100.0%