- Tobias Gustafsson
- Medlem ●
- Kalmar
Hej!
Finns det någon DynDNS klient till FreeBSD som fungerar att använda med Loopias DNS-tjänst?
Jag använder curl just nu men jag vill att IP-adressen ska uppdateras automatiskt när jag får en ny från min ISP.
Jag kör med curl, kan kolla exakt kommando hemma men det ska finnas på Loopias hemsida någonstans.
Uppdatering, från Loopias hemsida:
Vi har färdigställt ett enkelt skript som dessutom tar reda på IP-adressen åt dig.
#!/bin/sh
curl -s --user 'användarnamn:lösenord'
"http://dns.loopia.se/XDynDNSServer/XDynDNS.php?
hostname=dindomän.se&
myip="`curl -s dns.loopia.se/checkip/checkip.php |
sed 's/^.*: \([^<]*\).*$/\1/'` ; echo
Notera att ovanstående kommando skrivs på en rad. Placera innehållet i en fil med namnet loopiadns.sh och sätt rättigheterna på filen med chmod +x loopiadns.sh.
Jag kör med curl, kan kolla exakt kommando hemma men det ska finnas på Loopias hemsida någonstans.
Uppdatering, från Loopias hemsida:
Vi har färdigställt ett enkelt skript som dessutom tar reda på IP-adressen åt dig.
#!/bin/sh
curl -s --user 'användarnamn:lösenord'
"http://dns.loopia.se/XDynDNSServer/XDynDNS.php?
hostname=dindomän.se&
myip="`curl -s dns.loopia.se/checkip/checkip.php |
sed 's/^.*: \([^<]*\).*$/\1/'` ; echo
Notera att ovanstående kommando skrivs på en rad. Placera innehållet i en fil med namnet loopiadns.sh och sätt rättigheterna på filen med chmod +x loopiadns.sh.
Ursäkt min okunskap inom detta området, hur kör man scriptet? Jag har inte testat ännu.
Jag använder också curl just nu, men det jag undrade var om det fanns något annat sätt att göra det på, utan cron. Till exempel ett program/script som körs hela tiden och kollar om min IP-adress stämmer överens med den Loopia har, om det inte gör det ska den uppdatera den. Finns det tror ni?
Ok, tack för ditt svar. Får nog köra med cron i alla fall, verker inte finnas något annat sätt.
skulle gå att göra en fil med liknande innehåll:
#!/bin/bash while a=a do sleep 5 curl -s --user 'användarnamn:lösenord' "http://dns.loopia.se/XDynDNSServer/XDynDNS.ph..."`curl -s dns.loopia.se/checkip/checkip.php | sed 's/^.*: \([^<]*\).*$/\1/'` done
sen köra igång den i bakgrunden, kör det där var 5e sekund
Men det belastar ju loopias servrar litegrann så ett annan, bättre, metod är ju att trycka ut nätverkskortets IP i en variabel, jämföra variabeln och om den inte stämmer med den ip som var när scriptet startades. Om den inte jämför kan den sova 5 sekunder och sen jämföra igen, om samma så upprepas det och den sover.
Om den däremot ändrats så kör den scriptet ovan, blir lite while och if-satser, men bör vara relativt lätt att fixa.
Ska fila ihop ett litet script, återkommer snart¨
Edit:
Här har vi:
#!/bin/bash IPaddr=`ifconfig eth0 | grep "inet addr" | cut -d":" -f2 | cut -d" " -f1` while a=a do sleep 5 IPaddrNy=`ifconfig eth0 | grep "inet addr" | cut -d":" -f2 | cut -d" " -f1` if [ $IPaddr != $IPaddrNy ] then curl -s --user 'användarnamn:lösenord' "http://dns.loopia.se/XDynDNSServer/XDynDNS.ph..."`curl -s dns.loopia.se/checkip/checkip.php | sed 's/^.*: \([^<]*\).*$/\1/'` IPaddr=$IPaddrNy fi done
Bara variera tiden i sleep med rätt värde, ändra interface från eth0 till det som gäller för dig och ditt användarnamn/lösen hos LoopiaDNS
Det detta gör är att kollar din IP var 5e sekund om det har ändrats sedan det startade (eller sedan den sist uppdaterades) utan att belasta Loopia förutom de gånger den har ändrats
Detta testades på Debian så det behövs lite modifieringar i IPaddr-sakerna för att passa FreeBSDs ifconfig, t.ex. bör inet addr bytas mot inet och parametrarna till cut får nog ändras lite
För OS X är t.ex. motsvarande rad istället:
ifconfig en0 | grep -v "inet6" | grep "inet" | cut -d" " -f2 | cut -d" " -f1
Sen kan du köra det genom att först chmod'a det +x sen: ./scriptet.sh > /dev/null 2>&1 &
Det fungerar bra, tack!
Scriptet är ju snyggt men funkar väl inte om man har en router då den kollar datorns ip, i mitt fall 10.0.0.6, och inte nätverkets ip utåt så att säga, eller har jag fel?
Nej, det gör det inte...då får du ändra det till detta:
#!/bin/bash IPaddr=`curl -s dns.loopia.se/checkip/checkip.php | sed 's/^.*: \([^<]*\).*$/\1/'` while a=a do sleep 5 IPaddrNy=`curl -s dns.loopia.se/checkip/checkip.php | sed 's/^.*: \([^<]*\).*$/\1/'` if [ $IPaddr != $IPaddrNy ] then curl -s --user 'användarnamn:lösenord' "http://dns.loopia.se/XDynDNSServer/XDynDNS.ph..."`curl -s dns.loopia.se/checkip/checkip.php | sed 's/^.*: \([^<]*\).*$/\1/'` IPaddr=$IPaddrNy fi done
Fast det förtar ju lite idéen med det förra, då denna kollar med loopia om ip-adressen har uppdaterats
det förstås, eftersom att den bara uppdaterar IP-adressen om den faktiskt har ändrats så är det ju bättre än att bara köra uppdateringsraden var 5e minut eller så (då man istället bara kan köra detta i bakgrunden och ändra sleep till typ 600)..
om man bara kör:
curl -s --user 'användarnamn:lösenord' "http://dns.loopia.se/XDynDNSServer/XDynDNS.ph..."`curl -s dns.loopia.se/checkip/checkip.php | sed 's/^.*: \([^<]*\).*$/\1/'`
så uppdaterar den ju DNSen vare sig du har ändrat ip eller inte, med dessa 2 uppdaterar du ju bara om den har ändrats, den första tar ju bort nästan all belastning (bara en uppdatering per ip-byte s.a.s) medans den här hämtar hem några byte ifrån loopia varje loop men bara gör "stora uppdateringen" vid byte ändå..
i min /etc/crontab har jag lagt in
*/5 * * * * sidde /Users/sidde/dns.sh
Och dns.sh är
#!/bin/sh
curl -s --user 'användarnamn:lösenord'
"http://dns.loopia.se/XDynDNSServer/XDynDNS.php?
hostname=dindomän.se&
myip="`curl -s dns.loopia.se/checkip/checkip.php |
sed 's/^.*: \([^<]*\).*$/\1/'` ; echo
i min /etc/crontab har jag lagt in
*/5 * * * * sidde /Users/sidde/dns.sh
Och dns.sh är
#!/bin/sh
curl -s --user 'användarnamn:lösenord'
"http://dns.loopia.se/XDynDNSServer/XDynDNS.php?
hostname=dindomän.se&
myip="`curl -s dns.loopia.se/checkip/checkip.php |
sed 's/^.*: \([^<]*\).*$/\1/'` ; echo
D.v.s. precis samma lösning som först kom upp i tråden
Gammal tråd, men jag försöker ändå.
Enligt loopias hemsida ska man kuna köra detta via https ist. (känns ju lite trist att skicka lösenordet i klartext)
När jag försöker detta via curl får jag ett elakt felmeddelande:
curl: (77) error setting certificate verify locations:
CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: none
Antar att jag måste installera nåt SSL-certifikat, men hur? Och vart hittar jag certifikatet?
Vill väcka den här tråden lite.
Har ni enbart LoopiaDNS-konton, eller har ni webhotellkonton?
Jag har försökt pilla och få detta att fungera, men det vill sig inte riktigt. På Loopias supportsidor står det att LoopiaDNS-kunder kan ändra detta med dynamisk DNS.
Jag har flera olika domäner hos Loopia, samtliga kopplade till egna hemkataloger hos Loopia. Jag skulle gärna skapa några subdomäner som pekar till olika IP-adresser och som uppdateras med DynDNS från respektive dator.
Går det?
Vill väcka den här tråden lite.
Har ni enbart LoopiaDNS-konton, eller har ni webhotellkonton?
Jag har försökt pilla och få detta att fungera, men det vill sig inte riktigt. På Loopias supportsidor står det att LoopiaDNS-kunder kan ändra detta med dynamisk DNS.
Jag har flera olika domäner hos Loopia, samtliga kopplade till egna hemkataloger hos Loopia. Jag skulle gärna skapa några subdomäner som pekar till olika IP-adresser och som uppdateras med DynDNS från respektive dator.
Går det?
Vet inte hur det är med DynDNS, men med Loopias egen dynamiska tjänst funkar det. Jag har gjort något liknande, med lyckat resultat. Mitt bästa tips är att ringa supporten på Loopia, de kan hjälpa dig med det praktiska.