LoopiaDNS klient

Tråden skapades och har fått 20 svar. Det senaste inlägget skrevs .
1

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.

  • Medlem
  • Stockholm
  • 2006-04-19 15:24

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.

Ursprungligen av Linus:

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.

  • Medlem
  • Stockholm
  • 2006-04-19 17:50

Nu har jag kollat hur jag har gjort hemma och jag har inte gjort något script av det utan jag har slängt in hela kommandot i crontab helt enkelt och så kör jag det typ fyra gånger om dagen.

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?

  • Medlem
  • Stockholm
  • 2006-04-19 18:08

Cronjobbet gör ju just det du vill och du kan säga till den att kolla hur ofta du vill. Men vill du ha annan lösning av andra skäl så tyvärr, jag vet inte.

Ok, tack för ditt svar. Får nog köra med cron i alla fall, verker inte finnas något annat sätt.

  • Medlem
  • Bollnäs
  • 2006-04-19 21:10

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 &

Senast redigerat 2006-04-19 23:56
  • Medlem
  • International user
  • 2006-04-19 23:37

Snyggt jobbat!

Vet du om några ändringar måste göras för att köra skriptet på en Fedora?

  • Medlem
  • Bollnäs
  • 2006-04-19 23:47
Ursprungligen av Chilleboy:

Snyggt jobbat!

Vet du om några ändringar måste göras för att köra skriptet på en Fedora?

Ska (läs bör) inte behövas några ändringar alls där

  • Medlem
  • International user
  • 2006-04-19 23:51

Härligt!

Skall prova skriptet under morgondagen!

  • Medlem
  • Bollnäs
  • 2006-04-21 16:31
Ursprungligen av Chilleboy:

Härligt!

Skall prova skriptet under morgondagen!

Nå? hur fungerade det

Det fungerar bra, tack!

  • Medlem
  • International user
  • 2006-04-21 19:08
Ursprungligen av bogg:

Nå? hur fungerade det

Det körde ihop sig lite, får försöka att få till det under helgen…
Skall bli spännande!

  • Medlem
  • Stockholm
  • 2006-04-21 19:47

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?

  • Medlem
  • Bollnäs
  • 2006-04-21 21:03
Ursprungligen av Linus:

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å..

  • Medlem
  • Sundsvall
  • 2006-04-22 22:13

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

  • Medlem
  • Bollnäs
  • 2006-04-23 12:35
Ursprungligen av Sidde:

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

  • Medlem
  • 2008-02-22 15:43

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?

  • Medlem
  • International user
  • 2010-07-22 10:58
Ursprungligen av Fredrik Dolk:

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.

1
Bevaka tråden