|
本帖最后由 blueshell 于 2023-3-25 02:07 编辑
/koolshare/scripts/ddnspod_config.sh
我因为双wan,有些地方直接写死了,避免来回跳。所以就把你们应该修改了传上来了
替换函数arIpv4DdnsUpdate和arApiPost
arApiPost() {
local agent="AnripDdns/5.07(mail@anrip.com)"
local inter="https://dnsapi.cn/${1:?'Info.Version'}"
local param="login_token=$ddnspod_config_id,$ddnspod_config_token&format=json&${2}"
#wget --quiet --no-check-certificate --output-document=- --user-agent=$agent --post-data "$param" "$inter"
curl --silent -X POST -H 'charset=UTF-8;' --user-agent "$agent" --data "$param" $inter
}
arIpv4DdnsUpdate() {
local domainID recordID recordRS recordCD myIPV4 errMsg
# 获得域名ID
#domainID=$(arApiPost "Domain.Info" "domain=${1}")
#domainID=$(echo $domainID | sed 's/.*"id":"\([0-9]*\)".*/\1/')
# 获得记录ID
recordID=$(arApiPost "Record.List" "domain=${1}&sub_domain=${2}")
recordID=$(echo $recordID | sed 's/.*{"id":"\([0-9]*\)".*"type":"A".*/\1/')
# 更新记录IP
recordRS=$(arApiPost "Record.Ddns" "domain=${1}&record_id=${recordID}&sub_domain=${2}&value=${hostIPV4}&record_line=默认")
recordCD=$(echo $recordRS | sed 's/.*{"code":"\([0-9]*\)".*/\1/')
# 输出记录IP
if [ "$recordCD" == "1" ]; then
dbus set ddnspod_run_status_v4="`echo_date` 更新成功,wan ipv4:${hostIPV4}"
echo 1
fi
# 输出错误信息
if [ "$recordCD" != "1" ]; then
errMsg=$(echo $recordRS | sed 's/.*,"message":"\([^"]*\)".*/\1/')
dbus set ddnspod_run_status_v4="失败,错误代码:$errMsg"
echo $errMsg
fi
}
|
|