DynDns изменить, перейдя на веб-страницу (http) в терминале

У меня есть провайдер со службой DynDns, где я должен заставить сервер использовать http для связи с серверами DynDns у провайдера. Это выглядит так:

https://[username]:[password]@dyndns.myisp.com/nic/update?hostname=[host]&myip=[ip] 

Теперь вот моя проблема: я не знаю, как заставить мой сервер «использовать» эту http-команду для изменения IP. Я имею в виду, что знаю о cronjobs и о том, как сделать простой скрипт bash, но я не знаю, какую команду использовать, чтобы мой компьютер "посетил" эту страницу.

0
задан 12 June 2014 в 20:34

1 ответ

Обычно сервер делает просто, что, он служит, предполагая, что Вы говорите о сервере HTTP.

В большинстве случаев маршрутизатор - модем DSL ответственен за то, что сделал такие вещи. Проверьте следующее, которое может относиться к Вашей ситуации:

Типичные домашние пользователи получают динамические IP-адреса от своего ISPs почти каждый раз, когда они соединяются с Интернетом или когда их арендный договор заканчивается.

то, Когда такой пользователь хотят разместить домашний сервер, доступный Интернету, должно выбрать между двумя решениями:

  • Плата за статический IP
  • Находит Динамическую службу DNS

При использовании второго решения, следующие вещи применяются:

  1. пользователь сохраняет динамический характер дюйм/с
  2. , пользователь сообщает Динамической службе DNS каждый раз, когда новый динамический IP был присвоен ему.
  3. Динамическая служба DNS отображает IP пользователя на URL.

вторая часть процесса выше обычно делается или ueser' маршрутизатор - модемом DSL или демоном (сервис) приложение, работающее в компьютере пользователя - сервер. Сервис входит в систему Динамического поставщика DNS и сообщает поставщику о текущем IP-адресе пользователя.

Для завершения вышеупомянутой задачи сначала посмотрите в маршрутизаторе - настройки модема DSM, который является самым чистым и простым методом. Если модем не поддерживает эту функцию, обратитесь к ISP, если они предоставляют приложение для задачи. Наконец запустите скрипт в сервере каждый раз, когда новый IP получен или каждый n минуты (обычно не меньше чем 10 минут).

Примеры различных методов, чтобы сообщить Динамической службе DNS, что был получен новый IP:

#!/bin/bash

#################################################################
## ChangeIP.com bash update script                             ##
#################################################################
## Written 3/18/09 by Tom Rinker, released to the Public Domain##
#################################################################
## This is a simple bash script to preform a dDNS update with  ##
## ChangeIP.com. It uses only bash and wget, and so should be  ##
## compatible with virtually any UNIX/Linux based system with  ##
## bash. It is intended to be executed as a cron job, and      ##
## will only execute an update of dDNS records when the IP     ##
## address changes. As ChangeIP.com dDNS records have a 5 min  ##
## Time-To-Live, it is basically pointless and wasteful to     ##
## execute it more often than every 5 minutes. This script     ##
## supports logging all activity, in 3 available log levels,   ##
## and supports simple management of log file size.            ##
#################################################################
## To use this script:                                         ##
## 1) set the variables in the script below                    ##
## 2) execute the script as a cron job                         ##
#################################################################
## WARNING: This script has two potential security holes.      ##
## First, the username and password are stored plaintext in    ##
## the script, so a system user who has read access to the     ##
## script could read them. This risk can be mitigated with     ##
## careful use of file permissions on the script.              ##
## Second, the username and password will show briefly to other##
## users of the system via ps, w, or top. This risk can be     ##
## mitigated by moving the username and password to .wgetrc    ##
## This level of security is acceptable for some installations ##
## including my own, but may be unacceptable for some users.   ##
#################################################################

################ Script Variables ###############################
IPPATH=/var/log/IP                    # IP address storage file
TMPIP=/tmp/tmpIP                      # Temp IP storage file
LOGPATH=/var/log/changeip.log         # Log file
TEMP=/tmp/temp                        # Temp storage file
CIPUSER=                              # ChangeIP.com Username
CIPPASS=                              # ChangeIP.com Password
CIPSET=1                              # ChangeIP.com recordset
LOGLEVEL=2                            # 0=off,1=normal,2=verbose
LOGMAX=500                            # Max log lines, 0=unlimited
#################################################################

# get current IP from ip.changeip.com, and store in $TEMP
wget -q -U "rinker.sh wget 1.0" -O $TEMP ip.changeip.com

# parse $TEMP for the ip, and store in $TMPIP
grep IPADDR < $TEMP | cut -d= -s -f2 | cut -d- -s -f1 > $TMPIP

# compare $IPPATH with $TMPIP, and if different, execute update
if diff $IPPATH $TMPIP > /dev/null
  then                                # same IP, no update
      if [ $LOGLEVEL -eq 2 ]
        then                          # if verbose, log no change
          echo "--------------------------------" >> $LOGPATH
          date >> $LOGPATH             
          echo "No Change" >> $LOGPATH
          echo -e "IP: \c" >> $LOGPATH
          cat $IPPATH >> $LOGPATH
      fi
  else                                # different IP, execute update
      wget -q -U "rinker.sh wget 1.0" -O $TEMP --http-user=$CIPUSER --http-password=$CIPPASS "https://nic.changeip.com/nic/update?cmd=update&set=$CIPSET"
      if [ $LOGLEVEL -ne 0 ]
        then                          # if logging, log update
          echo "--------------------------------" >> $LOGPATH
          date >> $LOGPATH             
          echo "Updating" >> $LOGPATH
          echo -e "NewIP: \c" >> $LOGPATH
          cat $TMPIP >> $LOGPATH
          if [ $LOGLEVEL -eq 2 ]
            then                      # verbose logging
              echo -e "OldIP: \c" >> $LOGPATH
              cat $IPPATH >> $LOGPATH
              cat $TEMP >> $LOGPATH   # log the ChangeIP.com update reply
          fi
      fi
      cp $TMPIP $IPPATH               # Store new IP
fi

# if $LOGMAX not equal to 0, reduce log size to last $LOGMAX number of lines
if [ $LOGMAX -ne 0 ]
  then
      tail -n $LOGMAX $LOGPATH > $TEMP
      cp $TEMP $LOGPATH
fi
1
ответ дан 12 June 2014 в 20:34

Другие вопросы по тегам:

Похожие вопросы: