Zrobiłem na własne potrzeby dwie małe poprawki w ddns-scripts i publikuję je tu, gdyby komuś mogły się przydać.
(pliki *.diff umieściłem też w załączniku)
Pierwsza, to możliwość wyłączenia wymuszonych aktualizacji (nie znalazłem takiej opcji w oryginale) przez ustawienie czasu na 0 (lub mniej). Gdy ktoś korzysta np. z Neostrady, IP zmienia się codziennie, więc aktualizacje i tak będą, a przynajmniej wyłączymy niepotrzebną aktualizację przy restarcie routera:
Poprawka w pliku /usr/lib/ddns/dynamic_dns_updater.sh (wynik polecenia diff - tak sie poprawki publikuje?):
Druga, to dodanie możliwości pobierania adresu IP za pomocą własnego skryptu. W moim przypadku router, na którym działa skrypt, nie wie jakie jest zewnętrzne IP. W ddns-scripts jest wprawdzie opcja sprawdzania IP w sieci, ale uznałem, że nie ma sensu sięgać tak daleko, skoro mogę uzyskać tę informację z modemo-routera w mojej sieci lokalnej (z pewnych względów nie pracuje on jako bridge, tylko jako pełny router).
--- /rom/usr/lib/ddns/dynamic_dns_functions.sh Sun Dec 27 23:12:29 2009
+++ /usr/lib/ddns/dynamic_dns_functions.sh Wed Mar 24 00:38:35 2010
@@ -53,7 +53,7 @@
{
#if ip source is not defined, assume we want to get ip from wan
- if [ "$ip_source" != "interface" ] && [ "$ip_source" != "web" ]
+ if [ "$ip_source" != "interface" ] && [ "$ip_source" != "web" ] && [ "$ip_source" != "script" ]
then
ip_source="network"
ip_network="wan"
@@ -74,6 +74,10 @@
if [ "$ip_source" = "network" ] || [ "$ip_source" = "interface" ]
then
current_ip=$(ifconfig $ip_interface | grep -o 'inet addr:[0-9.]*' | grep -o "$ip_regex")
+ elif [ "$ip_source" = "script" ]
+ then
+ # get ip from script
+ current_ip=$($ip_script)
else
# get ip from web
# we check each url in order in ip_url variable, and if no ips are found we use dyndns ip checker
dla przykładu mój plik konfiguracyjny wygląda tak:
A przykładowy skrypt do pobierania IP (/usr/lib/ddns/get_ip.sh) tak (ten skrypt nie jest uniwersalny (działa z modemo-routerem Planet ADE-4400) - jest to tylko przykład):
ip=''
while [ -z "$ip" ]
do
ip=$(wget -q -O - http://login:haslo@10.0.0.1/status/status_deviceinfo.htm 2>/dev/null | head -61 | tail -1 | egrep -o "[0-9.]+")
if [ "$ip" = "0.0.0.0" ]
then
ip=''
sleep 30
fi
done
echo $ip
(IP = 0.0.0.0 w przypadku tego routera oznacza brak połączenia - więc skrypt czeka troszkę i sprawdza ponownie)
Jeżeli moderatorzy uznają ten temat za stratę miejsca i go usuną - nie będę miał żalu (chciałem tylko w końcu wnieść tu coś od siebie).
Jeżeli uznacie te poprawki za wartościowe - można ich swobodnie używać w dowolnym celu. Nie roszczę sobie do nich żadnych praw :P
2 x TP-Link WR1043ND (Gargoyle PL by obsy) + SpeedStream 4101
· Łącznie użytkowników: 24,115 · Najnowszy użytkownik: Ja
Czat
Musisz się zalogować, aby opublikować wiadomość.
Maniek91PL
06-11-2024 22:37
dzięki !
maxikaaz
29-10-2024 14:27
@Maniek91PL - Administration=> Admin Access, i tam masz "Allow Wireless Access" do zaznaczenia
Maniek91PL
26-10-2024 22:07
siemka! ktoś przypomni co się ustawiało jeśli nie mogę wejść od strony wifi do tomato? od lan działa
overflow2
04-10-2024 17:34
Kupowałem Asusy n10u albo n12d1 ale nie widzę ich, chyba już nie produkują, Chodzi o coś nowego i taniego. Transfery niewielkie.
maxikaaz
04-10-2024 09:38
@overflow2 patrząc po dostępności funkcji w nowych kompilacjach, to chyba nawet WRT54G/GL jeszcze ma OpenVPN, albo jakiś odpowiednik... zależy, na jakie transfery liczysz.
overflow2
30-09-2024 20:53
Jaki aktualnie najtańszy router do tomato do openvpn?
maxikaaz
27-07-2024 15:07
@servee - na początek router do rozebrania i obejrzenia, ciężko wróżyć tak tylko po objawach
maxikaaz
27-07-2024 14:55
@servee - cały kontroler nie pada tak sobie z powodu "zbiegu okoliczności", więc prawdopodobnie gdzieś przepięcie.
servee
25-07-2024 13:33
@maxikaaz: działało, aż pewnego pięknego dnia przestało działać. W tym dniu była też burza, ale to raczej zbieg okoliczności.
maxikaaz
25-07-2024 11:38
@servee - o ile problem jest w obrębie samych wyjść (dławiki, warystory), to naprawialne, ale jeśli w samym SoC - to nienaprawialne ze względu na koszta. A co było przyczyną?