Pull to refresh

Python + Twitter API. Всегда знай свой IP

Reading time2 min
Views1.1K
Пусть вам нужно иметь доступ к своей системе издалека, а у вас, положим, Стрим, а, следовательно, динамический IP. При этом пользоваться сервисом вроде No-IP вы по каким-то своим причинам не хотите, а хотите простой и прямой доступ по ssh/scp на вашу, естественно, всегда включенную, машину.

Итак, что нам нужно. Прежде всего, вышеупомянутая вечно включенная машина с ssh сервером (конечно, стоит отключить возможность подключения к нему с рутовой/админской учётной записью). Если комп находится за роутером, то нужно настроить порт ssh, ибо велик шанс, что у роутера 22 порт закреплён за ним. Кроме того, не забудьте его, порт, открыть в firewall'e.
Далее, конечно, ставим Python (я использовал ветку 2.x.x, последнюю stable версию). Ставим python-twitter.
Затем регистрируем нового юзера в Twitter'e и делаем его закрытым от левого фолловинга.

Создаём .py файлик и пишем примерно это:
import twitter
import urllib
import re

# Логинимся свежесозданным юзером
twapi = twitter.Api(username = "xxxxxx", password = "yyyyyy")

# Выдираем IP с myip.ru
myipF = urllib.urlopen("http://www.myip.ru/get_ip.php?loc=")
myipContent = myipF.read()
myipF.close()
resIP = re.search('\d+.\d+.\d+.\d+', myipContent)

# Постим его в Твиттер
twapi.PostUpdate("My IP now is " + resIP.group(0))

Выполнение скрипта ставим в ваш любимый планировщик (cron), устанавливаем подходящий временной интервал (вполне нормально будет использовать и маленький промежуток времени, т. к. дублирующие сообщения нельзя постить в течение 12 часов, поэтому бот не будет сорить лишний раз).
Фолловим своим обычным юзером этого свежерожденного (или используем теперь новую учётную запись как вашу основную).
Ставим на ваш смартфон/телефон/коммуникатор/нетбук twitter-клиент (или ничего никуда не ставим, а просто используем web-интерфейс где попало).
Берём с собой на флэшке portable-версию putty и Winscp.
Всё, вы готовы к бою =)
Tags:
Hubs:
Total votes 16: ↑11 and ↓5+6
Comments2

Articles