Comments 14
ибо «работает — ради бога не трогай» (с).
зачем тогда надо было менять Windows XP и Kerio Winroute Firewall?
-1
Честно говоря не понял зачем все это?
ddclient присутствует практически в каждом дистрибутиве линукса и вполне выполняет свою роль. (адреса обновляются, ничего не банится и не отключается)
ddclient присутствует практически в каждом дистрибутиве линукса и вполне выполняет свою роль. (адреса обновляются, ничего не банится и не отключается)
+1
ddclient умеет определять, что внешний IP изменился? Думаю — вряд ли. Поэтому приходится постоянно следить за этим, и отправлять свой новый IP только если он изменился. А банит сам сервис dyndns.org из-за частых отправлений одинаковых IP (в бесплатном аккаунте, в платном, я так понял, можно хоть каждую секунду отправлять данные).
Первый скрипт как раз и проверяет — обновился ли внешний IP, если да — отправляем данные в сервис, если нет — ничего не делаем.
ddclient — также рекомендован dyndns.org. Честно говоря не помню, почему выбрал именно inadyn, но думаю можно использовать любой подобный пакет, а также что-то подобное этому.
Первый скрипт как раз и проверяет — обновился ли внешний IP, если да — отправляем данные в сервис, если нет — ничего не делаем.
ddclient — также рекомендован dyndns.org. Честно говоря не помню, почему выбрал именно inadyn, но думаю можно использовать любой подобный пакет, а также что-то подобное этому.
0
У меня ddclient переодически подвисал, бывало и 10 раз в день и два раза в месяц. С чем это связано так и не выяснил. Написал скрипт, который проверяет зависший демон ddclient или нет.
#!/bin/sh
# This script need run from crontab each one minute.
PATH=/bin:/usr/bin
db="/root/scripts/ddclient.data"
log="/var/log/ddclient.log"
newpos=`ps x|awk /ddclient/'{printf $9}'`
oldpos=`cat $db`
if [ $newpos = $oldpos ] ; then
/etc/init.d/ddclient restart
echo -n 0 > $db
date "+%Y-%m-%d %H:%M Restart ddclient deamon." >> $log
else
echo -n $newpos > $db
fi
0
Я сделал следующим образом, но для этого нужен сервер с белым айпи и ssh доступом к нему.
На компе за натом выполняю команду по крону:
только надо не забыть организовать доступ по открытому ключу.
На компе за натом выполняю команду по крону:
ssh user@whiteserver 'env | grep SSH_CONNECTION > ip.txt'
только надо не забыть организовать доступ по открытому ключу.
0
все просто у меня модем на бридже и скрипт в кроне каждые 10 минут:
#!/bin/sh
#Скрипт отправляет на почту текущий динамический адрес
#Переменные
LAST_IP=`cat /root/last_ip`
INTERFACE="dsl1"
STRING=`ifconfig $INTERFACE | grep "inet addr"`
IP=`echo $STRING | gawk -F: '{print $2}' | gawk -F' ' '{print $1}'`;
#Узнаем IP и заносим его в файл /root/last_ip если ip совпадаеи с ip что в файле то он не перезаписываеться
if [ "$LAST_IP" != "$IP" ]; then
#Если отличаеться то записываеться
echo $IP > /root/last_ip
#Отправляем содержимое на email
cat | grep "" /root/last_ip | ssmtp -v -s 'ADSL' user@gmail.com
fi
0
Тоже имеет право на жизнь. Но
1. Кроме меня удаленно могут подключиться и другие юзеры.
2. Поставил на шлюз веб-сервер, чисто для себя, чтобы при необходимости какой-нибудь скрипт проверить — и не надо лезть на почту и искать текущий IP — все же dns-имя проще запомнить, а оно у меня всегда актуальное.
1. Кроме меня удаленно могут подключиться и другие юзеры.
2. Поставил на шлюз веб-сервер, чисто для себя, чтобы при необходимости какой-нибудь скрипт проверить — и не надо лезть на почту и искать текущий IP — все же dns-имя проще запомнить, а оно у меня всегда актуальное.
0
Может стоит добавить обновление IP-адреса при создании соединения?
0
Вообще все это странно. Я не разу не встречался с блокировкой dyndns аккаунта. В учетную запись уже забыл когда залезал. Наверно года 4 назад.
Далее вот часть скрипта который будет мониторить ip и вызывать другой скрипт если он поменялся.
Писался он для update ipv6 адреса туннеля. Сейчас это не актуально.
Код можно еще улучшить, но мне уже лень :)
Далее вот часть скрипта который будет мониторить ip и вызывать другой скрипт если он поменялся.
Писался он для update ipv6 адреса туннеля. Сейчас это не актуально.
Код можно еще улучшить, но мне уже лень :)
#!/bin/bash
NAME=ipv6daemon
PIDFILE=$NAME.pid
INT_WAN=ppp0
WAN_IP=$(ip addr show $INT_WAN | awk '/inet/ {print $2}')
case "$1" in
start)
echo "Starting ipv6update service"
if [ ! -r "$PIDFILE" ]; then
exec >/dev/null
exec 2>/dev/null
(
trap "" TERM
echo ${BASHPID} > "$NAME".pid
./ipv6update
while true
do
IP_ADDR=$(ip addr show $INT_WAN | awk '/inet/ {print $2}')
if [ "$IP_ADDR" != "$WAN_IP" ]; then
WAN_IP="$IP_ADDR"
./ipv6update
fi
sleep 60
done
)&
fi
if read pid < "$PIDFILE" && ps -p "$pid" > /dev/null 2>&1; then
echo "$NAME allready is running $pid"
exit 0
else
echo "$NAME is not running but $PIDFILE exists."
exit 1
fi
;;
0
Sign up to leave a comment.
Re: Узнать белый IP-адрес роутера с сервера, который за NAT-ом