# AfraidDnsUpdaterWin **Repository Path**: CloudStrolling/AfraidDnsUpdaterWin ## Basic Information - **Project Name**: AfraidDnsUpdaterWin - **Description**: 在freedns.afraid.org注册动态域名。通过此工具可以将本机的ip地址同步到域名服务上,让动态域名正确指向本机ip地址。 - **Primary Language**: C++ - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-16 - **Last Updated**: 2026-05-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AfraidDNS 动态DNS更新器 一款Windows桌面应用程序,当您的公网IP地址发生变化时自动更新 FreeDNS (freedns.afraid.org) 的动态DNS记录。 ## 功能特点 - **自动IP监控**:每5分钟检查一次公网IP - **自动更新域名**:IP变化时自动更新DNS记录 - **Windows服务**:可作为后台Windows服务运行 - **简单易用的GUI**:带有域名列表和状态显示的友好界面 - **跨平台FreeDNS支持**:支持任何FreeDNS子域名 ## 环境要求 - Windows 10 或更高版本 - Visual Studio 2022(用于编译) - FreeDNS 账户 (freedns.afraid.org) ## 编译 ### 使用 Visual Studio 1. 在 Visual Studio 中打开 `AfraidDnsUpdater.sln` 2. 选择 "Release" 配置 3. 生成解决方案 (Ctrl+Shift+B) ### 使用 MSBuild(推荐) ```powershell msbuild AfraidDnsUpdater.sln /p:Configuration=Release ``` 可执行文件将创建在: - `AfraidDnsUpdater\bin\Release\AfraidDnsUpdater.exe` (GUI应用) - `AfraidDnsUpdaterService\bin\Release\AfraidDnsUpdaterService.exe` (服务) ### MSI 安装程序功能: - 基于 WiX v4.0.5 构建 - 两个可选特性: - 主程序(必选)- AfraidDnsUpdater.exe + 桌面快捷方式 + 开始菜单快捷方式 - Windows 服务(可选)- AfraidDnsUpdaterService.exe,安装时自动执行 /install 注册服务,卸载时自动执行 /uninstall - 安装界面支持特性选择树(WixUI_FeatureTree) - 安装完成后可选运行程序 - 开始菜单包含"卸载"快捷方式 - x64 平台,perMachine 安装范围 - 支持中文界面 构建方式: 1. 先编译 C++ 项目:MSBuild AfraidDnsUpdater.sln /p:Configuration=Release /p:Platform=x64 2. 再打包 MSI:cd Installer && dotnet build AfraidDnsUpdater.wixproj -c Release 输出文件位于 bin\Release\AfraidDnsUpdater-1.0.0.msi。 ## 使用方法 ### GUI应用程序 1. 运行 `AfraidDnsUpdater.exe` 2. 点击"设置"输入您的FreeDNS用户名和密码 3. 您的域名将被获取并显示 4. 双击域名可切换自动更新 5. 当前IP显示在状态栏 ### Windows服务安装 **安装(需要管理员权限):** ```cmd AfraidDnsUpdater.exe /install ``` **卸载(需要管理员权限):** ```cmd AfraidDnsUpdater.exe /uninstall ``` 服务将在系统启动时自动运行,并无GUI地执行IP监控。 ## 配置 设置文件存储在C:\ProgramData\AfraidDnsUpdater\settings.ini。 如果从GUI进入,无需单独配置。 如果从Windows服务进入,则考虑如果已经在GUI配置过,则无需配置该文件。 仅在从Windows服务进入,且未进入GUI配置时,需要先配置该文件。(不推荐) ```ini [Account] Username= xxxx Password= xxxx [Hosts] xxxx.crabdance.com=http://freedns.afraid.org/dynamic/update.php?xxxxxxxxx|1|xxx.xxx.xxx.xxx xxxx.mooo.com=http://freedns.afraid.org/dynamic/update.php?xxxxxx|1|xxx.xxx.xxx.xxx ``` ## 工作原理 1. **认证**:使用 SHA1("用户名|密码") 作为API密钥 2. **获取域名**:从FreeDNS API获取域名列表 3. **IP检查**:使用 checkip.amazonaws.com(主要)和 ipinfo.io(备用) 4. **更新**:IP变化时调用FreeDNS更新URL ## 许可证 Apache License 2.0