New user's registration have been closed due to high spamming and low trafic on this forum. Please contact forum admins directly if you need an account. Thanks !
ip-adress peka mot domän (Loopia)
-
- Posts: 7
- Joined: 15 Aug 2009, 06:27
ip-adress peka mot domän (Loopia)
Någon som vet hur jag enklast gör för att tex peka min ip-adress som jag har nu, och varje gång den byts till en domänadress på loopia? Har försökt med Curl, men hur jag än gör så får jag inte det till att funka. Har sökt på google, men vet inte ifall man behöver göra något speciellt med just bubba two? Alltså jag vill att varje gång jag får en ny ip-adress, så ska jag ändå kunna komma åt min server genom den domänen jag registrerat på loopia (en blabla.nu -adress.
Re: ip-adress peka mot domän (Loopia)
(a little unsure about the language here. Is this an english or english/swedish forum? Well, since the question is in swedish I guess I'll answer in swedish as wellSupermannen wrote:Någon som vet hur jag enklast gör för att tex peka min ip-adress som jag har nu, och varje gång den byts till en domänadress på loopia? Har försökt med Curl, men hur jag än gör så får jag inte det till att funka. Har sökt på google, men vet inte ifall man behöver göra något speciellt med just bubba two? Alltså jag vill att varje gång jag får en ny ip-adress, så ska jag ändå kunna komma åt min server genom den domänen jag registrerat på loopia (en blabla.nu -adress.

Vad du behöver är att installera ddclient, finns en guide på wiki: http://wiki.excito.org/wiki/index.php/T ... DNS_Client
Jag kör själv ddclient mot Loopia, så jag klistrar in min konf, borde funka likadant för dig. Det här är alltså filen /etc/ddclient.conf:
Code: Select all
# /etc/ddclient.conf
daemon=7200
pid=/var/run/ddclient.pid
protocol=dyndns2
custom=yes
use=web, web=dns.loopia.se/checkip/checkip.php,
web-skip='Current IP Address:'
server=dns.loopia.se/XDynDNSServer/XDynDNS.php
#noforce
login=<Loopia username>
password=<Loopia password>
wildcard=yes
domain1.se
domain2.se
domain3.se
/Daniel
Re: ip-adress peka mot domän (Loopia)
Hmmm.. jag kör curl som fungerar finfint! Lägg koden nedan i en fil och schemalägg den till att köra typ var 5:e minut..
Koden ska vara i en enda rad. Lägg till flera rader för fler domäner.
Koden ska vara i en enda rad. Lägg till flera rader för fler domäner.
Code: Select all
curl -s --user '[USER]:[PASSWD]' "http://dns.loopia.se/XDynDNSServer/XDynDNS.php?hostname=[DOMAIN]
&myip="`curl -s dns.loopia.se/checkip/checkip.php |sed 's/^.*: \([^<]*).*$/\1/'` ; echo
Last edited by tobbenet on 26 Oct 2010, 04:18, edited 1 time in total.
-
- Posts: 7
- Joined: 15 Aug 2009, 06:27
Re: ip-adress peka mot domän (Loopia)
Okej! Tack för svaren!
Hade varit bra om jag fått det att fungera med Curl.
Låt oss säga att jag har detta som domänadress: abcde.nu och 12345 som lösenord. Exakt hur ska det stå i filen för att få det till att fungera. Ska jag skriva in det i tex loopiadns.sh (filen) och sedan köra den? För på det sättet jag försöka skriva in det så fungerar det inte. Gör säkert något fel i med jag är väldigt ovan inom detta. Skulle även vara bra om någon vill säga hur jag ska göra och skriva för att schemalägga det här så att den uppdateras tex var 5:e minut.
Hade varit bra om jag fått det att fungera med Curl.
Låt oss säga att jag har detta som domänadress: abcde.nu och 12345 som lösenord. Exakt hur ska det stå i filen för att få det till att fungera. Ska jag skriva in det i tex loopiadns.sh (filen) och sedan köra den? För på det sättet jag försöka skriva in det så fungerar det inte. Gör säkert något fel i med jag är väldigt ovan inom detta. Skulle även vara bra om någon vill säga hur jag ska göra och skriva för att schemalägga det här så att den uppdateras tex var 5:e minut.
-
- Posts: 7
- Joined: 15 Aug 2009, 06:27
Re: ip-adress peka mot domän (Loopia)
Kan det vara någon inställning i bubban som spärrar så att det inte funkar? Har tex innan använt easyfind. Men använder det inte längre. När jag skriver sh loopiands.sh så kommer det ju inga felmeddelande.
Re: ip-adress peka mot domän (Loopia)
Code: Select all
curl -s --user 'abcde.nu:12345' "http://dns.loopia.se/XDynDNSServerXDynDNS.php?hostname=abcde.nu
&myip="`curl -s dns.loopia.se/checkip/checkip.php |sed 's/^.*: \([^<]*).*$/\1/'` ; echo
Code: Select all
nochg
-
- Posts: 7
- Joined: 15 Aug 2009, 06:27
Re: ip-adress peka mot domän (Loopia)
När jag gör det får jag upp: sed: -e expression #1, char 22: Unmatched ( or \(
Re: ip-adress peka mot domän (Loopia)
Looks like tobbenet lost an escape-char. Try this (again, as one line):
Code: Select all
curl -s --user 'abcde.nu:12345' "http://dns.loopia.se/XDynDNSServer/XDynDNS.php?hostname=abcde.nu&myip="`curl -s dns.loopia.se/checkip/checkip.php |sed 's/^.*: \([^<]*\).*$/\1/'` ; echo
-
- Posts: 7
- Joined: 15 Aug 2009, 06:27
Re: ip-adress peka mot domän (Loopia)
Thank you! 

-
- Posts: 7
- Joined: 15 Aug 2009, 06:27
Re: ip-adress peka mot domän (Loopia)
Hur gör jag nu för att schemalägga den så att den startar av sig själv och uppdateras (ungefär var 5:e minut)?
Re: ip-adress peka mot domän (Loopia)
Nice! Thank you, Harris! I'm doing the old "copy-paste without checking the results"
To schedule, type and add the line
This will make the file run every 15 minutes with no output (you would get an email otherwise every 15 minutes)
Make sure the user you are logined as can run the file.

To schedule, type
Code: Select all
crontab -e
Code: Select all
*/15 * * * * /home/[user]/loopiadns.bat >/dev/null 2>&1
Make sure the user you are logined as can run the file.
-
- Posts: 7
- Joined: 15 Aug 2009, 06:27
Re: ip-adress peka mot domän (Loopia)
Någon som kan svara på vad som som krävs för att detta scriptet ska funka på Bubba? För jag har fått det till att funka på min bubba2 för längesen, och det funkar fortfarande där. Men nu har jag problem när jag ska lägga in det på min nya bubba3.
Tror det har med ssl att göra. Säkert något jag behöver installera. När jag tex skriver sh loopiadns2.sh update så får jag upp följande:
[: 156: 1: unexpected operator
[: 156: 1002: unexpected operator
[: 156: 0: unexpected operator
[: 156: customcacert: unexpected operator
[: 156: auto: unexpected operator
Jul 8 16:07:25 updatedns: error: could not update host=abc1.nu ip=auto response=abuse
Jul 8 16:07:25 updatedns: error: could not update host=abc2.nu ip=auto response=abuse

[: 156: 1: unexpected operator
[: 156: 1002: unexpected operator
[: 156: 0: unexpected operator
[: 156: customcacert: unexpected operator
[: 156: auto: unexpected operator
Jul 8 16:07:25 updatedns: error: could not update host=abc1.nu ip=auto response=abuse
Jul 8 16:07:25 updatedns: error: could not update host=abc2.nu ip=auto response=abuse
Code: Select all
#!/bin/bash
# spam@jxvf.net
username="abc123"
password="abc123"
domainname="abc1.nu abc2.nu"
# set this to your ip address to override the lookup
ip="auto"
# log options
uselog="1"
logfile="$HOME/dnsupdate.log"
# curl options
# use default, if that fails with ssl errors, sort out your certs
# used by libcurl or use customcacert.
# to get a bundle collected from mozilla run:
# curl http://curl.haxx.se/ca/cacert.pem > $HOME/.curl_cacert.pem
#
# customcacert = uses a custom cacert pem bundle defined below,
# ignorecert = ignores errors. not recommended
#
curloption="customcacert"
# path to custom cacert
cacert="$HOME/.curl_cacert.pem"
# disable ssl, this is NOT recommended.
disablessl="0"
# where to store saved ip data
ipfile="$HOME/.dnsupdate_lastip.log"
# if you get errors and your curl supports ssl disable this
sslcheck="1"
#######################################################
allowroot="0"
log="$(date '+%b %e %T') updatedns:"
#######################################################
case $curloption in
ignorecert) curlopt="-s -S -k" ;;
customcacert) curlopt="-s -S --cacert $cacert" ;;
*) curlopt="-s -S"
esac
PRINT_USAGE () {
echo "Usage: updatedns.sh [update|force|showip]"
echo " if no option is given a normal update will be issued"
echo " and output will be written to \$logfile if \$uselog is"
echo " set"
echo
echo " update"
echo " same as default but will not redirect output to \$logfile"
echo
echo " force"
echo " forces an update to your domainname(s) with loopia, regardless"
echo " if your ip has not changed. will not redirect to \$logfile"
echo
echo " showip"
echo " shows your current ip and the ip saved on file"
}
UPDATE () {
if [ "$uselog" == "1" ] && [ "$1" != "force" ] && [ "$1" != "update" ]; then
exec >> $logfile 2>&1
fi
if [ $(id -u) == "0" ] && [ "$allowroot" != 1 ]; then
echo "$log error: wont run as root"
exit 1
fi
if [ "$disablessl" == "1" ]; then
protocol="http"
else
GETPROTOCOL
fi
if [ -z "$password" ] || [ -z "$username" ]; then
echo "$log error: username or password not set"
exit 1
elif [ -z "$domainname" ]; then
echo "$log error: domainname not set"
exit 1
elif [ "$curloption" == "customcacert" ] && [ ! -f "$cacert" ]; then
echo "$log error: $cacert not found"
exit 1
fi
OLDIP
if [ "$ip" == auto ]; then
GETIP
fi
if [ "$ip" != "$oldip" ] || [ "$1" == "force" ]; then
for i in $domainname ; do
if ! sethost="$(curl $curlopt --user "$username":"$password" ""$protocol"://dns.loopia.se/XDynDNSServer/XDynDNS.php?hostname="$i"&myip="$ip"")" ; then
echo "$log error: could not update host=$i ip=$ip"
elif [ "$sethost" != "good" ]; then
echo "$log error: could not update host=$i ip=$ip response=$sethost"
else
echo "$log info: updated host=$i ip=$ip response=$sethost"
echo "$ip" > "$ipfile"
fi
done
else
echo "$log info: ip has not changed, not updating ip=$ip"
fi
}
GETIP () {
if ipc=$(curl $curlopt $protocol://dns.loopia.se/checkip/checkip.php) ; then
ip=$(echo "$ipc"|sed -n 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\).*$/\1/p')
else
echo "$log error: could not get ip number"
exit 1
fi
}
OLDIP () {
if [ -f "$ipfile" ]; then
if ! oldip="$(cat $ipfile|egrep "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$")";
then
echo "$log error: cant parse $ipfile"
exit 1
fi
fi
}
GETPROTOCOL () {
if [ "$(curl -V|grep Protocols|grep https)" ] || [ "$check_ssl" == "0" ]; then
protocol="https"
else
echo "$log error: your version of curl does not seem to support ssl for https."
exit 1
fi
}
SHOWIP () {
GETPROTOCOL
GETIP
OLDIP
echo "current: $ip"
echo "saved: $oldip"
}
if [ -z "$1" ]; then
UPDATE
else
case $1 in
force) UPDATE force ;;
showip) SHOWIP ;;
update) UPDATE update ;;
*) PRINT_USAGE
esac
fi