welcome: please sign in
location: pildns.sh

pildns.sh

Ein sehr einfaches sh Script, um unter Unix unseren Service zu verwenden. Sitzt ihr hinter einem Router, sprich wisst euere eigene externe IPAdresse nicht, so solltet ihr pildns.sh in einen Cronjob packen.

*/5     *       *       *       *       /path/to/pildns.sh 2>&1

Verbindet sich ein Unixrechner mit dem Internet, so weiss er in den meisten Faellen seine externe IP, aendert sich diese solltet ihr dieses Script ausfuehren, z.B. via ppp-linkup unter FreeBSD.

requires: wget

# very simple pildns script
# edit those values on your needs
PILHOSTS=''
PILID=''
POOL="$HOME/.pildns/current"
NEW="$HOME/.pildns/new"

# XXX do not edit below
PATH=/bin:/usr/local/bin:/usr/bin:$PATH
PILDOM="dyn.pilgerer.org"
PILDNS="http://dyn.pilgerer.org/update"
MYIP="http://dyn.pilgerer.org/ip"
UPDATE=0

wget --quiet -O ${NEW} ${MYIP}
if [ $? -ne 0 ];then
  echo "wget failed"
  exit 1
fi

if [ -f ${POOL} ]; then
  (diff -q ${NEW} ${POOL})
  if [ $? -gt 0 ]; then
    cp ${NEW} ${POOL}
    UPDATE=1
  fi
else
  cp ${NEW} ${POOL}
  UPDATE=1
fi
IP=`cat ${POOL}`

if [ ${UPDATE} -eq 1 ]; then
  for HOST in ${PILHOSTS}; do
    wget --quiet -O /dev/null "$PILDNS?user=${PILID}&ipaddress=${IP}&host=${PILHOSTS}.${PILDOM}"
    if [ $? -ne 0 ];then
      echo "update failed"
      exit 1
    else
      echo "update success"
    fi
  done
fi
exit 0

pildns.sh (last edited 2008-07-14 09:55:40 by localhost)