项目地址 DDNS-GO Windows版本下载 Linux版本下载
举个例子,以ubuntu/debian为例也可以这样安装
wget https://github.com/jeessy2/ddns-go/releases/download/v6.15.0/ddns-go_6.15.0_linux_x86_64.tar.gz
tar -zxvf ddns-go_6.15.0_linux_x86_64.tar.gz
后面就是简单的服务安装和卸载
Linux安装和卸载
sudo ./ddns-go -s install
sudo ./ddns-go -s uninstall
Windows安装和卸载
.\ddns-go.exe -s install
.\ddns-go.exe -s uninstall
[可选] 支持安装或启动时带参数
-l监听地址
-f同步间隔时间(秒)
-cacheTimes间隔N次与服务商比对
-c自定义配置文件路径
-noweb不启动web服务
-skipVerify跳过证书验证
-dns 自定义 DNS 服务器。
如:
./ddns-go -s install -l :9877 -f 600 -c /Users/name/ddns-go.yaml
填返回信息用这个就够用,
{
"msgtype": "text",
"text": {
"content": "#{ipv4Domains}\n#{ipv4Addr}\n\n#{ipv6Domains}\n#{ipv6Addr}"
}
}
Windows获取命令的命令有以下这些(都只是举例,自己可以按情况改)
ipconfig | findstr IPv4
ipconfig | Select-String -Pattern '240e:[0-9a-f:]+::[0-9a-f]+' -AllMatches | % { $_.Matches } | % { $_.Value } | Select -First 1
Get-NetIPAddress -AddressFamily IPv6 | Where-Object { $_.IPAddress -notmatch '^fe80:' -and $_.IPAddress -notmatch '^::' } | Select-Object -ExpandProperty IPAddress -First 1
ipconfig | Select-String -Pattern '2[0-9a-f]{3}:[0-9a-f:]+:[0-9a-f]+' -AllMatches | % { $_.Matches } | % { $_.Value } | Select -First 1
linux v4
hostname -I | awk '{print $1}'
ip -4 addr show | grep -oP '(?<=inet\s)(?!127\.|100\.)\d+(\.\d+){3}' | head -n1
ip -4 addr show scope global | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | grep -Ev '^(100\.|10\.8|10\.9|172\.17)' | head -n1
ip -4 route get 223.5.5.5 2>/dev/null | grep -oP 'src \K[\d.]+' | grep -Ev '^100\.' || hostname -I | grep -oP '\d+(\.\d+){3}' | grep -Ev '^(100\.|127\.)' | head -n1
linuxIPv4,指定到卡
ip -4 addr show enp3s0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'
linuxIPv6
ip -6 addr | grep -oPi '\b240e:[0-9a-f:]+::[0-9a-f]+\b' | head -n1
linuxIPv6,指定到卡
ip -6 addr show enp3s0 | grep -oP '(?<=inet6\s)[0-9a-f:]+(?=/)' | grep -v '^fe80' | grep '::' | head -n1
ip -6 addr show enp3s0 | grep -oP '(?<=inet6\s)[0-9a-f:]+(?=/)' | grep -v '^fe80' | grep -E '::[0-9a-f]+$' | head -n1
ip -6 addr show enp3s0 | grep -oP '(?<=inet6\s)[0-9a-f:]+(?=/)' | grep -v '^fe80:' | head -n 1 | grep -E '^2'
ip -6 addr show enp1s0 | grep -oP '(?<=inet6\s)[0-9a-f:]+(?=/)' | grep -vi '^fe80' | grep -E '^2[0-9a-f:]+' | head -n1
可能是temporary
ip -6 addr show dev wlp1s0 | awk '/inet6 240e:/ {print $2}' | cut -d/ -f1 | head -n1
绝对非temporary
ip -6 addr show dev wlp1s0 | awk '/inet6 240e:/ && !/temporary/ {print $2}' | cut -d/ -f1 | head -n1
严格global
ip -6 addr show dev wlp1s0 scope global | awk '$1=="inet6" && $2 ~ /^240e:/ && $0 !~ /temporary/ {print $2}' | cut -d/ -f1 | head -n1
linux v6 不指定卡
ip -6 addr | grep -oP '(?<=inet6\s)[0-9a-f:]+(?=/)' | grep -vi '^fe80' | grep -E '^2[0-9a-f:]+' | head -n1
ip -6 addr | grep -oP '(?<=inet6\s)[0-9a-f:]+(?=/)' | grep -vi '^fe80' | grep -E '^2[0-9a-f:]+::[0-9a-f]+$' | head -n1
ip -6 route get 2400:3200::1 2>/dev/null | grep -oP 'src \K[0-9a-f:]+' | grep -E '^2' | head -n1
ip -6 route get 2400:3200::1 2>/dev/null | grep -oP 'src \K[0-9a-f:]+' | grep -E '^2' || ip -6 addr | grep -oP '(?<=inet6\s)[0-9a-f:]+(?=/)' | grep -vi '^fe80' | grep -E '^2' | head -n1
可能是temporary
ip -6 addr | awk '/inet6 240e:/ {print $2}' | cut -d/ -f1 | head -n1
绝对非temporary
ip -6 addr | awk '/inet6 240e:/ && !/temporary/ {print $2}' | cut -d/ -f1 | head -n1
严格global
ip -6 addr show scope global | awk '$1=="inet6" && $2 ~ /^240e:/ && $0 !~ /temporary/ {print $2}' | cut -d/ -f1 | head -n1
以上只是举例,涉及到网卡和运营商前缀的改成自己前缀即可,优先用自己命令,不要用外部网站API,太拉了