电信宽带一般能申请到公网IP,但是是动态的,基本上每天都要变,所以想到做一个定时任务,随系统启动,网上看了不少博文很多都支持IPv4,自己动手写了一个。
(私信可全程指导)
下载地址:私信获取
下载压缩包,解压后修改配置文件AliDDNS.exe.config中的阿里云帐号和自己的域名。
将“安装服务.bat”和“卸载服务.bat”脚本中的可执行文件路径,改为自己的软件包所在路径,然后右键“安装服务.bat”进行安装服务。
执行脚本后会将定时服务添加到系统服务中。
右键“此电脑”,点击“管理”进入计算机管理窗口,在服务列表中找到上一步新增的服务,然后启动。即可定时更新阿里云解析记录,实现动态IP的DDNS。
源代码:
/// <summary>
/// 刷新阿里云域名解析记录
/// </summary>
private void RefreshAliRecord()
{
string recordTypes = ConfigurationManager.AppSettings["RecordTypes"];
if (string.IsNullOrWhiteSpace(recordTypes))
{
NLogHelper.WriteLog(typeof(AliDDNS), "配置文件中的“待解析的协议类型”不能为空。", NLogLevel.Warn);
return;
}
string regionId = ConfigurationManager.AppSettings["RegionId"];
string accessKeyID = ConfigurationManager.AppSettings["AccessKeyID"];
string accessKeySecret = ConfigurationManager.AppSettings["AccessKeySecret"];
string domainName = ConfigurationManager.AppSettings["DomainName"];
string rR = ConfigurationManager.AppSettings["RR"];
string[] rRTypes = rR.Split('|');
// regionId:地区节点
// accessKeyID:阿里云Key
// accessKeySecret:阿里云密钥
AlibabaCloudCredentialsProvider provider = new AccessKeyCredentialProvider(accessKeyID, accessKeySecret);
IClientProfile profile = DefaultProfile.GetProfile(regionId);
DefaultAcsClient client = new DefaultAcsClient(profile, provider);
List<DescribeDomainRecordsResponse.DescribeDomainRecords_Record> recordList = DescribeDomainRecords(client, domainName);
string[] recordTypeArray = recordTypes.Split('|');
foreach (string recordType in recordTypeArray)
{
if (recordType == "A")
{
#region IPv4解析记录
try
{
string urls = ConfigurationManager.AppSettings["GetIPFromUrl&