View previous topic :: View next topic |
Author |
Message |
preacher n00b
Joined: 09 Jan 2004 Posts: 55 Location: Göteborg, Sweden
|
Posted: Mon Jul 11, 2005 8:59 am Post subject: dyndns och domän hos Loopia |
|
|
Jag registrerade nyligen en domän hos Loopia, endast dns, ingen hostning.
Då jag blir tilldelad en ip-adress via dhcp från min internetleverantör vill jag gärna att domänen automatiskt skall uppdateras till rätt ip-adress.
När jag tidigare använde mig av en domän hos dyndns.org var det inga problem, det finns ju en uppsjö av mjukvaru-klienter till den tjänsten, dessutom stödde min Linksys-router dem.
Såhär skriver Loopia om sin dynamiska dns-tjänst:
Code: | Vad stödjer LoopiaDNS i sitt protokoll?
Loopias DynDNS server stödjer följande i GET:
system
Vilket system som används. LoopiaDNS stödjer endast system=custom.
Frivillig: ja
Förinställt: custom.
hostname
Här anger du domännamnen som du vill uppdatera separerade med kommatecken.
Frivillig: nej.
myip
Vilken IP adress som LoopiaDNS ska uppdateras till.
Frivillig: nej.
wildcard
Slår på eller av wildcard.
Möjliga värden: ON|OFF|NOCHG.
NOCHG gör att inga förändringar kommer att göras.
Frivillig: Ja
Förinställt: OFF
mx
Specifies a mail exchanger for use with the hostname being modified. The specified MX must be resolved to an IP address, or it will be ignored. Providing no MX setting or MX cannot be resolved to an IP address, will cause the hostname's MX record(s) to be removed.
Frivillig: Ja.
backmx
Request that the MX in the "mx" parameter be set up as a backup MX.
Möjliga värden: YES|NO
Frivillig: Ja
Förinställt: NO.
Följande är ett exempel på en tillåten GET till LoopiaDNS:
GET /XDynDNSServer/XDynDNS.php?
system=custom&
hostname=myhost.com&
myip=11.22.33.44&
backmx=YES
HTTP/1.0
Host: dns.loopia.se
Authorization: Basic username:password
User-Agent: myclient/1.0 me@null.net
Notera att allt från GET till HTTP/1.0 ska vara på samma rad.
Hur kan jag se min IP adress?
Genom att använda dig av adressen nedan kan du se vilken IP adress du har.
http://dns.loopia.se/checkip/checkip.php
Vad är adressen till er dynDNS server?
Adressen som du ska ange i din dynDNS klient är följande:
http://dns.loopia.se/XDynDNSServer/XDynDNS.php |
Det ser ju informativt och bra ut, men alla dyndns-klienter jag hittat verkar vara skrivna för endast vissa specifika dyndns-providers, som t.ex dyndns.org, no-ip.com m.fl.
Kan någon hjälpa mig reda ut det här? |
|
Back to top |
|
|
ndreas n00b
Joined: 02 Jul 2002 Posts: 36 Location: Gothenburg, Sweden
|
Posted: Wed Jul 13, 2005 1:20 pm Post subject: |
|
|
Nu är jag ute lite på hal is eftersom jag inte har nån koll alls på Loopia eller dyndns, men jag ger mig på en liten gissning.
Om jag tolkar det rätt så ska det gå att sätta ip-adressen via HTTP i en GET-request. Detta måste betyda att antingen skaffar du nåt program som kan skicka en GET med de headrar som ges i exempel-GET:en (typ en webbläsare eller nåt liknande) eller så knåpar du ihop ett litet skript/program som öppnar en socket mot dns.loopia.se och skickar en GET.
Det är hur som helst i avsnittet GET till HTTP/1.0 som alla variablerna som dom pratar om ska anges, separerade av &-tecken.
Om du väljer att fixa ett eget skript/program så om jag inte minns alldeles galet så måste varje rad avslutas med \r\n för att det ska funka i en HTTP-request, och att hela requesten måste följas av en tom rad. Om jag använder exemplet dom ger ska det alltså se ut nåt sånt här:
Code: | GET /XDynDNSServer/XDynDNS.php?system=custom&hostname=myhost.com&myip=11.22.33.44&backmx=YES HTTP/1.0\r\n
Host: dns.loopia.se\r\n
Authorization: Basic username:password\r\n
User-Agent: myclient/1.0 me@null.net\r\n
\r\n |
Observera att radbryten jag lade in var bara för läsbarhetens skull, i ett skript kan du stoppa in allt i en enda sträng eftersom radbryten då hamnar vid varje \r\n.
Hoppas jag har fattat det rätt och att det i så fall hjälper litegrann i alla fall. |
|
Back to top |
|
|
crudh l33t
Joined: 12 May 2005 Posts: 696 Location: Sundbyberg, Sweden
|
Posted: Wed Jul 13, 2005 1:38 pm Post subject: |
|
|
"wget" duger fint, det finns i portage. Det är ett program för att tanka ner hemsidor från konsollen.
Du anropar helt enkelt
http://dns.loopia.se/XDynDNSServer/XDynDNS.php
med variablerna:
Code: | system=custom&
hostname=myhost.com&
myip=11.22.33.44&
backmx=YES
HTTP/1.0
Host: dns.loopia.se
Authorization: Basic username:password
User-Agent: myclient/1.0 me@null.net |
(ändrat till dina egna då enligt beskrivningen)
T ex:
Code: | wget -d http://dns.loopia.se/XDynDNSServer/XDynDNS.php?system=custom&hostname=myhost.com&myip=11.22.33.44&... och så vidare med alla variablerna. |
wget -d säger åt wget att den skall ta bort filen när den är klar, den får formodligen ner en konfirmationssida från loopia att ipn är bytt. Du kan även pipa outputen till /dev/null tror jag så den inte spars på disk överhuvudtaget.
Sen kan du lägga in det i t ex /etc/conf.d/local.start så körs det varje gång du startar datorn. |
|
Back to top |
|
|
preacher n00b
Joined: 09 Jan 2004 Posts: 55 Location: Göteborg, Sweden
|
Posted: Fri Jul 15, 2005 6:34 am Post subject: |
|
|
Tack, nu blev det hela mycket klarare!
Håller på att försöka skriva ett litet script för att få det här gjort automatiskt, men när jag ska testa kommandot som skall uppdatera ip-adressen stöter jag ändå på problem:
Code: | `wget --http-user=username --http-passwd=passw0rd http://dns.loopia.se/XDynDNSServer/XDynDNS.php?hostname=hostname.se&system=custom&myip=xxx.xxx.xxx.xxx&wildcard=NOCHG`
|
Detta tar bara ner en sida som innehåller ordet "notfqdn", vilket ju måste innebära att något blev fel. Testar jag att skriva in fel användarnamn eller lösenord står det däremot "badauth" i filen som wget tar ner, så kontakt blir det ju åtminstone.
Efter att ha testat ett tag började det stå "abuse" i filen som wget tankade hem istället, vilket ju inte kändes så kul...
Någon som kan se något fel i kommandot ovan, förutom det uppenbara att jag ändrat mina personliga uppgifter? |
|
Back to top |
|
|
zeb Tux's lil' helper
Joined: 19 Apr 2002 Posts: 79 Location: Finland
|
Posted: Fri Jul 15, 2005 11:23 am Post subject: |
|
|
preacher wrote: |
Code: | `wget --http-user=username --http-passwd=passw0rd http://dns.loopia.se/XDynDNSServer/XDynDNS.php?hostname=hostname.se&system=custom&myip=xxx.xxx.xxx.xxx&wildcard=NOCHG`
|
Detta tar bara ner en sida som innehåller ordet "notfqdn", vilket ju måste innebära att något blev fel.? |
notfqdn = not fully qualified domain name; det är antagligen i hostname-parametern som felet ligger. |
|
Back to top |
|
|
preacher n00b
Joined: 09 Jan 2004 Posts: 55 Location: Göteborg, Sweden
|
Posted: Fri Jul 15, 2005 12:40 pm Post subject: |
|
|
zeb wrote: |
notfqdn = not fully qualified domain name; det är antagligen i hostname-parametern som felet ligger. |
Jo, jag antog också att det var det som notfqdn betydde, men jag har kontrollerat hostname-parametern och den är korrekt vad jag kan se.
För närvarande får jag fortfarande bara ner en fil som det står "abuse" i, trots att Loopias kundsupport säger att det inte finns någon spärr som skall göra så. Har även testat från jobbet men får samma fel, så det är inte ip-numret som är spärrat.
Jag väntar tills imorgon och försöker vidare då. |
|
Back to top |
|
|
crudh l33t
Joined: 12 May 2005 Posts: 696 Location: Sundbyberg, Sweden
|
Posted: Mon Jul 18, 2005 1:35 pm Post subject: |
|
|
Fick du ordning på det? |
|
Back to top |
|
|
preacher n00b
Joined: 09 Jan 2004 Posts: 55 Location: Göteborg, Sweden
|
Posted: Mon Jul 18, 2005 1:41 pm Post subject: |
|
|
Nej, det står fortfarande "abuse" i filen jag får ner, så spärren (som inte ska finnas enligt Loopia) verkar inte släppa inom överskådlig tid. Har tänkt maila dem igen men har inte haft tid.
Lovar att posta det färdiga scriptet när jag väl fått kläm på allt. |
|
Back to top |
|
|
preacher n00b
Joined: 09 Jan 2004 Posts: 55 Location: Göteborg, Sweden
|
Posted: Fri Jul 29, 2005 1:20 pm Post subject: |
|
|
Här är scriptet som det ser ut just nu, vore trevligt om det fanns nåt käckt sätt att få fram det aktuella ip't utan att behöva använda "host", som jag inte redan hade på mitt system utan blev tvungen att emerga.
Code: |
#!/bin/bash
############################ LoopiaDynDns.sh v1.0 ##############################
## Loopia Dyndns ip-updatescript, made by Peter (peter@preacher.se) with ##
## great help from Loopia support and the gentoo forums (forums.gentoo.org) ##
## You need the command "host" available on your system, which can be found ##
## in the bindtools package. ##
################################################################################
################################################################################
################ Edit configuration to suit your system: ######################
################################################################################
# Your authentication
USERNAME=username
PASSWORD=password
# Your top-level domain (eg. hostname.se, NOT www.hostname.se)
TLD="domain.se"
# Hosts you want to update, separated by commas
HOSTS="domain.se,www.domain.se"
# MX-pointer, leave blank to skip
MX="mail.domain.se"
# Use wildcard (*.hostname.se = hostname.se)? Set to either "ON", "OFF",
# or leave blank to leave current setting unchanged
WILDCARD=""
# Check for changes in IP every X seconds
TIME=300
################################################################################
########## End of configuration, shouldn't need to change below ################
################################################################################
# If no mx specified then dont try to set one
if [ $MX ]
then
MXCOMMAND="&mx=$MX"
else
MXCOMMAND=""
fi
# Wildcard wanted or not?
if [ $WILDCARD ]
then
WCOMMAND="&wildcard=$WILDCARD"
else
WCOMMAND="&wildcard=NOCHG"
fi
# Update the DNS with current ip if needed
while [ 1 ]
do
# Get our current ip:
IP=`wget http://dns.loopia.se/checkip/checkip.php -q -O - | tail -c +77 | head -c -14`
# Get ip currently in dns
DNSIP=`host $TLD | sed -e "s/$TLD//" -e "s/ has address //"`
# If ip's are not equal, update record
if [ $IP != $DNSIP ]
then
wget --delete-after --http-user='$USERNAME' --http-passwd='$PASSWORD' \
'http://dns.loopia.se/XDynDNSServer/XDynDNS.php?hostname=$HOSTS&\
myip=$IP$WCOMMAND&system=custom$MXCOMMAND'"
fi
sleep $TIME
done
|
|
|
Back to top |
|
|
|