Привет! Может, кто-нибудь поделится скриптом для dnsexit за NAT? Я обновил свой hap lite до версии 6.30.2, и теперь мой старый скрипт, который я нашёл на этом форуме, с этой версией не работает. Каждый раз, когда запускаю, в логе написано, что обновлять dnsexit не нужно, хотя я уверен, что IP поменялся.
Вот скрипт:
Устанавливаем нужные переменные:
:local username “xxxx”
:local password “xxxxxxx”
:local hostname “xxxxxxx”
:global dyndnsForce
:global previousIP
#:global currentIP
Выводим немного отладочной информации:
#:log info (“UpdateDnsExit: username = $username”)
#:log info (“UpdateDnsExit: password = $password”)
#:log info (“UpdateDnsExit: hostname = $hostname”)
#:log info (“UpdateDnsExit: previousIP = $previousIP”)
Получаем текущий IP из интернета (учитывая двойной NAT):
/tool fetch mode=http address=“ip.dnsexit.com” src-path=“/” dst-path=“usb1/dnsexit.tmp” port=80 host=ip.dnsexit.com
:local result [/file get [/file find name=usb1/dnsexit.tmp] contents]
:local resultLen [:len $result]
:local currentIP [:pick $result 0 ($resultLen-1)]
#:log info “UpdateDnsExit: currentIP = $currentIP”
Уберите # в следующей строке, чтобы принудительно обновлять каждый раз — полезно для отладки, но можете нарваться на блокировку со стороны DnsExit!
#:set dyndnsForce true
Определяем, нужно ли обновлять dyndns — больше деталей на DnsExit.com:
:if (($currentIP != $previousIP) || ($dyndnsForce = true)) do={
:set dyndnsForce false
:log info “UpdateDnsExit: Current IP $currentIP”
:log info “UpdateDnsExit: Previous IP $previousIP”
:set previousIP $currentIP
/tool fetch mode=http address="www.dnsexit.com" src-path=“RemoteUpdate.sv?login=$username&password=$password&host=$hostname&myip=$curr entIP” dst-path=“usb1/dnsexit.txt” port=80 host=www.dnsexit.com
:local result [/file get usb1/dnsexit.txt contents]
#:log info “UpdateDnsExit: previousIP = $previousIP”
:log info (“DnsExit: DnsExit update needed”)
:log info ("UpdateDnsExit: DnsExit Update Result: ".$result)
:log info ("DnsExit Update Result: ".$result)
} else={
:log info (“UpdateDnsExit: No DnsExit update needed”)
}
Я подключён к интернету (к модему провайдера в режиме моста) через pppoe на ether1.
Вот скрипт:
Устанавливаем нужные переменные:
:local username “xxxx”
:local password “xxxxxxx”
:local hostname “xxxxxxx”
:global dyndnsForce
:global previousIP
#:global currentIP
Выводим немного отладочной информации:
#:log info (“UpdateDnsExit: username = $username”)
#:log info (“UpdateDnsExit: password = $password”)
#:log info (“UpdateDnsExit: hostname = $hostname”)
#:log info (“UpdateDnsExit: previousIP = $previousIP”)
Получаем текущий IP из интернета (учитывая двойной NAT):
/tool fetch mode=http address=“ip.dnsexit.com” src-path=“/” dst-path=“usb1/dnsexit.tmp” port=80 host=ip.dnsexit.com
:local result [/file get [/file find name=usb1/dnsexit.tmp] contents]
:local resultLen [:len $result]
:local currentIP [:pick $result 0 ($resultLen-1)]
#:log info “UpdateDnsExit: currentIP = $currentIP”
Уберите # в следующей строке, чтобы принудительно обновлять каждый раз — полезно для отладки, но можете нарваться на блокировку со стороны DnsExit!
#:set dyndnsForce true
Определяем, нужно ли обновлять dyndns — больше деталей на DnsExit.com:
:if (($currentIP != $previousIP) || ($dyndnsForce = true)) do={
:set dyndnsForce false
:log info “UpdateDnsExit: Current IP $currentIP”
:log info “UpdateDnsExit: Previous IP $previousIP”
:set previousIP $currentIP
/tool fetch mode=http address="www.dnsexit.com" src-path=“RemoteUpdate.sv?login=$username&password=$password&host=$hostname&myip=$curr
:local result [/file get usb1/dnsexit.txt contents]
#:log info “UpdateDnsExit: previousIP = $previousIP”
:log info (“DnsExit: DnsExit update needed”)
:log info ("UpdateDnsExit: DnsExit Update Result: ".$result)
:log info ("DnsExit Update Result: ".$result)
} else={
:log info (“UpdateDnsExit: No DnsExit update needed”)
}
Я подключён к интернету (к модему провайдера в режиме моста) через pppoe на ether1.