@@ -771,36 +771,35 @@ func (s *ServerHandler) ReportSystemInfo(c context.Context, r *pb.Host) (*pb.Rec
771771 log .Printf ("服务器 %s (ID:%d) DDNS已启用但IP为空,跳过更新" , server .Name , clientID )
772772 } else if len (server .DDNSProfiles ) == 0 {
773773 log .Printf ("服务器 %s (ID:%d) DDNS已启用但未配置DDNS配置文件" , server .Name , clientID )
774+ } else if server .Host != nil && server .Host .IP == host .IP {
775+ // IP 没有变化,跳过更新(但不记录日志,避免频繁输出)
774776 } else {
775- // 获取当前保存的IP地址
776- currentIP := ""
777- if server .Host != nil {
778- currentIP = server .Host .IP
779- }
780-
781- // 检查IP是否实际发生了变化
782- if currentIP == host .IP {
783- // IP 没有变化,跳过更新(但不记录日志,避免频繁输出)
784- } else {
785- // IP 发生变化或首次设置,触发 DDNS 更新
786- ipv4 , ipv6 , _ := utils .SplitIPAddr (host .IP )
787- providers , err := singleton .GetDDNSProvidersFromProfilesWithServer (
788- server .DDNSProfiles ,
789- & ddns.IP {Ipv4Addr : ipv4 , Ipv6Addr : ipv6 },
790- server .Name ,
791- clientID ,
792- )
793- if err == nil {
794- log .Printf ("服务器 %s (ID:%d) IP变化 (%s -> %s),触发DDNS更新,配置数量: %d" ,
795- server .Name , clientID , currentIP , host .IP , len (providers ))
796- for _ , provider := range providers {
797- go func (provider * ddns.Provider ) {
798- provider .UpdateDomain (context .Background ())
799- }(provider )
800- }
801- } else {
802- log .Printf ("服务器 %s (ID:%d) 获取DDNS配置时发生错误: %v" , server .Name , clientID , err )
777+ // IP 发生变化或首次设置,触发 DDNS 更新
778+ ipv4 , ipv6 , _ := utils .SplitIPAddr (host .IP )
779+ providers , err := singleton .GetDDNSProvidersFromProfilesWithServer (
780+ server .DDNSProfiles ,
781+ & ddns.IP {Ipv4Addr : ipv4 , Ipv6Addr : ipv6 },
782+ server .Name ,
783+ clientID ,
784+ )
785+ if err == nil {
786+ log .Printf ("服务器 %s (ID:%d) IP变化 (%s -> %s),触发DDNS更新,配置数量: %d" ,
787+ server .Name , clientID ,
788+ func () string {
789+ if server .Host != nil {
790+ return server .Host .IP
791+ } else {
792+ return "无"
793+ }
794+ }(),
795+ host .IP , len (providers ))
796+ for _ , provider := range providers {
797+ go func (provider * ddns.Provider ) {
798+ provider .UpdateDomain (context .Background ())
799+ }(provider )
803800 }
801+ } else {
802+ log .Printf ("服务器 %s (ID:%d) 获取DDNS配置时发生错误: %v" , server .Name , clientID , err )
804803 }
805804 }
806805 }
0 commit comments