GetNewIp 接口/网卡/命令获得 ip 并校验用户输入的域名
(dnsConf *DnsConfig)
| 100 | |
| 101 | // GetNewIp 接口/网卡/命令获得 ip 并校验用户输入的域名 |
| 102 | func (domains *Domains) GetNewIp(dnsConf *DnsConfig) { |
| 103 | domains.Ipv4Domains = checkParseDomains(dnsConf.Ipv4.Domains) |
| 104 | domains.Ipv6Domains = checkParseDomains(dnsConf.Ipv6.Domains) |
| 105 | |
| 106 | // IPv4 |
| 107 | if dnsConf.Ipv4.Enable && len(domains.Ipv4Domains) > 0 { |
| 108 | ipv4Addr := dnsConf.GetIpv4Addr() |
| 109 | if ipv4Addr != "" { |
| 110 | domains.Ipv4Addr = ipv4Addr |
| 111 | domains.Ipv4Cache.TimesFailedIP = 0 |
| 112 | } else { |
| 113 | // 启用IPv4 & 未获取到IP & 填写了域名 & 失败刚好3次,防止偶尔的网络连接失败,并且只发一次 |
| 114 | domains.Ipv4Cache.TimesFailedIP++ |
| 115 | if domains.Ipv4Cache.TimesFailedIP == 3 { |
| 116 | domains.Ipv4Domains[0].UpdateStatus = UpdatedFailed |
| 117 | } |
| 118 | util.Log("未能获取IPv4地址, 将不会更新") |
| 119 | } |
| 120 | } |
| 121 | |
| 122 | // IPv6 |
| 123 | if dnsConf.Ipv6.Enable && len(domains.Ipv6Domains) > 0 { |
| 124 | ipv6Addr := dnsConf.GetIpv6Addr() |
| 125 | if ipv6Addr != "" { |
| 126 | domains.Ipv6Addr = ipv6Addr |
| 127 | domains.Ipv6Cache.TimesFailedIP = 0 |
| 128 | } else { |
| 129 | // 启用IPv6 & 未获取到IP & 填写了域名 & 失败刚好3次,防止偶尔的网络连接失败,并且只发一次 |
| 130 | domains.Ipv6Cache.TimesFailedIP++ |
| 131 | if domains.Ipv6Cache.TimesFailedIP == 3 { |
| 132 | domains.Ipv6Domains[0].UpdateStatus = UpdatedFailed |
| 133 | } |
| 134 | util.Log("未能获取IPv6地址, 将不会更新") |
| 135 | } |
| 136 | } |
| 137 | |
| 138 | } |
| 139 | |
| 140 | // checkParseDomains 校验并解析用户输入的域名 |
| 141 | func checkParseDomains(domainArr []string) (domains []*Domain) { |
no test coverage detected