# AliAutoDNSService
基于阿里云的域名解析接口,实现本地动态IP的动态解析的Window服务
# 更新说明
- V1.0.1
- 程序包添加Readme文件
- 删除原配置文件中无效键
- V1.1.0 @2020-03-21
- 解决无法停止/重启服务的Bug
- V1.2.0 @2020-05-10
- 解决路由器断网重连后(目前发现华为两款路由器)无法获取到公网IP的bug
- 发现存在无法正常关闭服务的bug,待解决
- V1.3.0 @2020-11-15
- 解决请求阿里云接口失败问题,错误:基础连接已经关闭: 发送时发生错误
- 解决原先无法正常停止服务的问题
# 当前版本
- V1.3.0
## 目的
- 家庭网络一般都被运营商nat了,即使设置端口映射也行不通,需要和运营商联系(我装宽带的时候直接跟安装师傅说需要公网IP,然后就给我开通了)
- 因为个人家庭网络一般没有静态IP,即使域名解析到家庭网络IP地址,宽带运营商也会不定时分配其他IP地址。
- 此程序实现个人家庭网络的外网映射,将域名解析地址指向个人公网IP,实现通过域名访问家庭网络。路由器部分需要自己单独做端口转发。
## 实现原理
- 阿里云域名提供通过API添加修改解析记录的功能(其他域名服务实也应该支持)。程序访问外网,实时查询本地公网IP地址,并根据实际情况判断是否更换域名指向IP。
## 使用者
- 首先注册阿里云账户,购买阿里云域名,前往AccessKeys获取具有管理云解析(DNS)权限的AccessKeyId和AccessKeySecret;
- 下载[压缩文件](https://github.com/shunchuan/AliAutoDNSService/releases/tag/V1.3.0),解压到运行路径;
- 修改.config配置文件中的value值,根据个人实际情况修改;
- 一般修改```AccessKeyId```、```AccessKeySecret```、```SetDNSDomainName```、```SetDNSHostRecord```、```BootFromBoot```即可;
- 注意:如果你域名下的解析记录很多(成百上千,否则可忽略),解析主机记录尽量写的与其他记录无重叠,目前只查询前500条过滤数据进行筛选。比如要解析abc记录,不要有500个以上的包含abc字段的主机记录存在。
- **管理员运行**Install.bat安装服务;
```
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<!--阿里云api接口地址 注意最后的/? 不要去掉-->
<add key="AliAPIUrl" value="https://alidns.aliyuncs.com/?"/>
<add key="AccessKeyId" value="xxx"/>
<add key="AccessKeySecret" value="xxx"/>
<!--需要设置的解析域名-->
<add key="SetDNSDomainName" value="xxx.com"/>
<!--需要设置的域名主机记录-->
<add key="SetDNSHostRecord" value="xxx"/>
<!--系统休眠时间 毫秒-->
<add key="SystemSleepTime" value="3000"/>
<!--域名解析TTL 如果是免费版最低为600 详情查看 https://help.aliyun.com/document_detail/29806.html?spm=a2c4g.11186623.2.7.QOM9MG -->
<add key="DomainNameTTL" value="120"/>
<!--当前解析线路 默认 ,或参考 https://help.aliyun.com/document_detail/29807.html?spm=a2c4g.11186623.2.8.Pe58xG -->
<add key="DNSLine" value="default"/>
<!--是否开启刷新本地解析记录,如果开启,可防止程序运行期间解析记录在其他地方修改-->
<add key="RefreshRun" value="true"/>
<!--如果开启刷新本地解析记录,则多少个间隔刷新一次, 即刷新时间间隔为 RefreshTimes * SystemSleepTime-->
<add key="RefreshTimes" value="20"/>
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
</configuration>
```
## 开发者
- 项目难点在于获取公共参数和签名值,官方文档查看[签名机制](https://help.aliyun.com/document_detail/29747.html?spm=a2c4g.11186623.2.3.7Ak6kX)。注意的是参数字段排序要区分大小写,C#的```Dictionary.OrderBy```方法并不区分大小写。
- HMAC-SHA1加密有微软现有的类,只需引用```System.Security.Cryptography```即可,项目中详情可查看[这里](https://github.com/shunchuan/AliAutoDNS/blob/master/AliHelper/Signature/Methods/Encrypt.cs)
- 公共参数的获取其实有官方的demo,地址在[阿里云开发工具包(SDK)](https://develop.aliyun.com/tools/sdk?#/dotnet)核心库中,我这里未使用,自己写了一遍。只调用了阿里云域名解析的查询、添加、修改三个api,文档地址在[解析管理接口](https://help.aliyun.com/document_detail/29772.html?spm=a2c4g.11186623.6.613.9eNWLG)。
- 没有什么难的地方,希望对你们有用。
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
基于阿里云的域名解析接口,实现本地动态IP的动态解析的Window服务.zip (51个子文件)
资料总结
AliAutoDNSService.sln 2KB
LICENSE 11KB
AliHelper
Signature
Model
CommonParameter.cs 2KB
AddDomainRecordModel.cs 2KB
DescribeDomainRecordsModel.cs 1KB
UpdateDomainRecordModel.cs 2KB
Methods
Common.cs 3KB
Encrypt.cs 909B
Do_Signature.cs 4KB
Extends
ParameterUtil.cs 4KB
packages.config 141B
AliHelper.csproj 3KB
Properties
AssemblyInfo.cs 1KB
API.cs 2KB
AliAutoDNSService
Install.bat 287B
packages.config 141B
AliAutoDNSService.Designer.cs 1KB
ProjectInstaller.cs 433B
AliAutoDNSService.csproj 4KB
App.config 2KB
DynamicJson.cs 14KB
AliAutoDNSService.cs 3KB
software
AliAutoDNSService_v1.0.0.rar 273KB
AliAutoDNSService_v1.0.1.rar 381KB
AliAutoDNSService_v1.2.0.zip 453KB
AliAutoDNSService_v1.1.0.rar 382KB
AliAutoDNSService_v1.3.0.zip 323KB
Methods
IPHelper.cs 3KB
Log.cs 3KB
HttpUtility.cs 3KB
ToDo.cs 15KB
Config.cs 2KB
Properties
AssemblyInfo.cs 1KB
ProjectInstaller.resx 6KB
Program.cs 553B
ProjectInstaller.Designer.cs 2KB
Uninstall.bat 215B
.gitignore 399B
README.md 5KB
packages
Newtonsoft.Json.12.0.1
lib
net45
Newtonsoft.Json.xml 672KB
portable-net40+sl5+win8+wp8+wpa81
Newtonsoft.Json.xml 490KB
netstandard1.0
Newtonsoft.Json.xml 651KB
net40
Newtonsoft.Json.xml 531KB
netstandard1.3
Newtonsoft.Json.xml 659KB
net35
Newtonsoft.Json.xml 519KB
netstandard2.0
Newtonsoft.Json.xml 671KB
portable-net45+win8+wp8+wpa81
Newtonsoft.Json.xml 651KB
net20
Newtonsoft.Json.xml 572KB
LICENSE.md 1KB
Newtonsoft.Json.12.0.1.nupkg 3.25MB
.signature.p7s 18KB
共 51 条
- 1
资源评论
妄北y
- 粉丝: 9604
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功