LastPass

The Last password you'll have t remember!

2014-01-08

Android och Loopias DynDNS med Tasker...

Jag letade idag efter en app som enkelt kunde ge mig ett dynamiskt DNS namn hos Loopia där jag har några domäner.
Det finns ju både DynDNS  Client som ju är avsedd för dyndns.org och samma skapare har även gett ut en mera generell version som heter Dynamic DNS Client.
Men jag fick ingen av dessa att fungera särskilt bra, så jag började titta på att fixa det själv med Tasker.

Jag har Samsung Galaxy S4 som jag gjort detta på, och den är rootad.

Vi börjar med att kolla vad vi har för IP adress, och det gör vi genom att skapa en Task som jag kallar Kolla IP där vi lägger en Action/Script/Shell/Run Shell

Här kan vi ge vanliga Linux kommandon, och kommandot för att kolla vilka nätverkskort och IP adresser som telefonen har är ifconfig i Linux.
Genom att fuska och använda Shell Commander där jag angett ifconfig och sett alla nätverkskort i telefonen (man ser både 3G, WiFi, Bluetooth m fl) så visste jag att mitt nätverkskort för 3G heter rmnet_usb0.
Jag listade dessutom ut att ifconfig ligger i katalogen /system/xbin
Så kommandot jag ger är
/system/xbin/ifconfig rmnet_usb0
Och då får jag lite för mycket test, jag är bara intresserad av IP adressen så jag lägger till | grep inet och hela raden blir
/system/xbin/ifconfig rmnet_usb0 | grep inet
Jag har klickat i Use Root för säkerhetsskull
Jag har även skapat två variabler där jag sparar resultatet i %Inet och ev felmeddelanden i %Inet_Error

Kör jag denna får jag en text sträng tillbaka som innehåller både lite text, IP adressen och Subnetmasken. Men jag vill bara ha IP adressen

Så jag skapar en Action till som heter Variable Split
Vilken delar på min variabel %Inet till 4 nya variabler %Inet1, %Inet2, %Inet3 och %Inet4
Och %Inet3 innehåller nu addr:3.67.152.92 vilket nästan är det jag vill ha kvar.
Men jag måste få bort addr: först. Och det gör jag med en ny Action som heter Variable Section

Variable Section tar i huvudsak 4 parametrar. Den ursprungliga variabeln som i mitt fall är %Inet3, från vilken position jag vill ha kvar informationen och jag vill ju ta bort addr: vilket är 5 tecken så jag anger 6 som första tecken att spara och sedan är det ju lite osäkert hur lång IP adressen är. Den kan ju vara 1.1.1.1 vilket är 7 tecken eller 255.255.255.255 vilket är 15 tecken. Så jag säger att jag vill ha 20 tecken, men kryssar i Adapt To Fit för att den skall sluta plocka tecken efter att längden på variabeln är slut. Och till slut lägger jag in resultatet i en ny variabel som jag kallar %IP_Address.

Så har jag hittat min IP adress.
Jag har skapat tre andra variabler manuellt. En är mitt användarnamn på Loopia, en är Lösenordet på Loopia och en tredje är det Hostnamn jag vill uppdatera hos Loopia DynDNS
Tanken är att skapa en fil som innehåller dessa som man enkelt kan byta eller ändra i, men det är ett annat inlägg.

Så för att hantera inloggningen på för att uppdatera DynDNS hos Loopia skall man anger 
UserName:PassWord@dns.loopia.se
Så jag skapar en ny Action som heter Variable Set
Variabeln kallar jag %Server och jag använder mina tidigare definierade variabler %UserName och %PassWord och sätter %Server till
%UserName:%PassWord@dns.loopia.se
Ett steg som är onödigt, men gör det lite lättare att felsöka.

Nu börjar det dra ihop sig, vi skall skapa en Action som vi hittar under Net och den heter HTTP GET
Här fyller vi %Server för Server:Port och för Path vill Loopia ha /XDynDNSServer/XDynDNS.php
Där utöver skall vi fylla i lite attribut.
system=custom
hostname=%HostName
myip=%IP_Address
backmx=YES

Lite längre ner fyller jag även i att jag vill spara resultatet i filen loopia_resultat.log som jag valt att lägga i en mapp som jag kallar LoopiaDNS

Om vi nu testar att köra denna Task så kommer den att kontakta Loopia och försöka uppdatera det hostnamn som du tidigare satt i variabeln %HostName.

Men för att det skall lyckas måste vi först logga in på Loopia och skapa detta HostName i deras DNS
Om du har en domän som heter mindoman.se och Loopia hanterar din DNS och du vill att din mobil skall ha domännamnet android.mindoman.se så skapar du ett nytt A record under denna domän

Subdomän: *
 .mindoman.se
Typ: *

TTL: *
Data: *

Det är viktigt att du sätter IP adressen till 127.0.0.1, det är det som talar om att den går att uppgradera dynamiskt.

Lycka till!




Inga kommentarer: