Использую следующий код, чтобы попытаться обновить запись Google DDNS с текущим IP, всё вроде работает корректно при взаимодействии с Google, но Google возвращает ошибку «badagent», так как в запросе должен быть указан корректный user agent, чтобы запрос приняли. Как можно задать и/или настроить user agent, который отправляется вместе с URL-запросом через fetch?
# Переменные
# Имя пользователя и пароль — это длинные криптографические данные, которые предоставляет Google Domains,
# а не ваши обычные данные аккаунта Google
:local GoogleDNSUsername "gbML26UKGdjm7Oz1"
:local GoogleDNSPassword "ASmwlKjCAkEywaZC"
:local hostName "test.twinstar5.com"
:local currentIP ""
:local setResults ""
:local previousIP ""
# Скрипт
:set currentIP [/ip cloud get public-address]
:set previousIP [:resolve "$hostName"]
:if ($currentIP != $previousIP) do={
:do {
/tool fetch url="https://$GoogleDNSUsername:$GoogleDNSPassword@domains.google.com/nic/update?hostname=$hostName&myip=$currentIP" mode=https dst-path=GoogleDNS.txt
:set setResults [/file get GoogleDNS.txt contents];
:log info ("GoogleDNS сказал следующее: $setResults")
} on-error={
:log error ("GoogleDNS: скрипт не смог установить новый IP-адрес")
}
}
# Переменные
# Имя пользователя и пароль — это длинные криптографические данные, которые предоставляет Google Domains,
# а не ваши обычные данные аккаунта Google
:local GoogleDNSUsername "gbML26UKGdjm7Oz1"
:local GoogleDNSPassword "ASmwlKjCAkEywaZC"
:local hostName "test.twinstar5.com"
:local currentIP ""
:local setResults ""
:local previousIP ""
# Скрипт
:set currentIP [/ip cloud get public-address]
:set previousIP [:resolve "$hostName"]
:if ($currentIP != $previousIP) do={
:do {
/tool fetch url="https://$GoogleDNSUsername:$GoogleDNSPassword@domains.google.com/nic/update?hostname=$hostName&myip=$currentIP" mode=https dst-path=GoogleDNS.txt
:set setResults [/file get GoogleDNS.txt contents];
:log info ("GoogleDNS сказал следующее: $setResults")
} on-error={
:log error ("GoogleDNS: скрипт не смог установить новый IP-адрес")
}
}
