Есть у меня дома adsl-модем вкупе с маршрутизатором. И есть желание иметь постоянный доступ к домашней машине по ssh, да вот незадача — у модема ip не статический, а даже совсем наоборот — динамический и узнать какой в текущий момент у него адрес. находясь за пределами дома — невозможно. Но только если заранее к этому не подготовиться =)
Вот вооружившись планом создать себе все возможности по получению ip-шника, я набросал небольшой скрипт, который при каждой загрузке системы узнаёт ip модема и выкладывает в файл на каком-либо фтп-сервере, а мне остаётся только посмотреть какой ip был присвоен модему при последней загрузке и подключиться через проброшенный порт к домашней машине =)
Для удобства, я разделил функционал на две части (сам скрипт и конфиг) и собрал всё это в маленький deb-пакет.
Код скрипта:
#!/bin/bash
### BEGIN INIT INFO
# Provides: get-ip
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Setting up daemon for detect IP on your system
### END INIT INFO
. /etc/get-ip.conf
if [ ${ftp_host} = "" ]; then
echo «Program is not configured! Host: $ftp_host»
exit 1;
fi
wget -qO /tmp/ip_tmp myip.ru && cat /tmp/ip_tmp | grep -e ".*
" | sed «s///g» | sed «s/<\/TD><\/TR>//g» | sed «s/ //g» > $upload_file_name && rm /tmp/ip_tmp
#echo $upload_file_name
ftp -n $ftp_host <<EOF
user $ftp_name $ftp_pass
delete $upload_file_name
send $upload_file_name
bye
EOF
rm $upload_file_name
echo «IP changed»
Собственно в скрипте нет абсолютно ничего сложного, при установке пакета, этот скрипт будет добавлен в скрипты вызываемые при загрузке системы, хотя решение может показаться не совсем рациональным, ибо машина может работать и неделю и две, а модем за это время не раз успеет сменить ip, но меня этот вариант вполне устраивает на домашней машине. а если кому-то не понравиться — то можно легко поправить исходник, благо он доступен по этой ссылке вместе с уже собранным пакетом: get-ip.tar.gz
PS: После установки, необходимо отредатировать файл /etc/get-ip.conf для работы с вашим фтп. Если кто расскажет более действенный и менее костылеподобный способ получения своего IP, буду благодарен =)
Вот вооружившись планом создать себе все возможности по получению ip-шника, я набросал небольшой скрипт, который при каждой загрузке системы узнаёт ip модема и выкладывает в файл на каком-либо фтп-сервере, а мне остаётся только посмотреть какой ip был присвоен модему при последней загрузке и подключиться через проброшенный порт к домашней машине =)
Для удобства, я разделил функционал на две части (сам скрипт и конфиг) и собрал всё это в маленький deb-пакет.
Код скрипта:
#!/bin/bash
### BEGIN INIT INFO
# Provides: get-ip
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Setting up daemon for detect IP on your system
### END INIT INFO
. /etc/get-ip.conf
if [ ${ftp_host} = "" ]; then
echo «Program is not configured! Host: $ftp_host»
exit 1;
fi
wget -qO /tmp/ip_tmp myip.ru && cat /tmp/ip_tmp | grep -e "
#echo $upload_file_name
ftp -n $ftp_host <<EOF
user $ftp_name $ftp_pass
delete $upload_file_name
send $upload_file_name
bye
EOF
rm $upload_file_name
echo «IP changed»
Собственно в скрипте нет абсолютно ничего сложного, при установке пакета, этот скрипт будет добавлен в скрипты вызываемые при загрузке системы, хотя решение может показаться не совсем рациональным, ибо машина может работать и неделю и две, а модем за это время не раз успеет сменить ip, но меня этот вариант вполне устраивает на домашней машине. а если кому-то не понравиться — то можно легко поправить исходник, благо он доступен по этой ссылке вместе с уже собранным пакетом: get-ip.tar.gz
PS: После установки, необходимо отредатировать файл /etc/get-ip.conf для работы с вашим фтп. Если кто расскажет более действенный и менее костылеподобный способ получения своего IP, буду благодарен =)
