Нужен скрипт Python для загрузки файла с IP-адресом каждые несколько минут.

Я использую Windows Server 2008, и одна из вещей, которые мне нужно сделать для сопряжения с доменным именем, — это отправить файл с текущим IP-адресом компьютера (он не статичен) на сервер через sftp каждые несколько минут. Проблема в том, что я не уверен, как это сделать.


person Sam    schedule 01.06.2011    source источник
comment
Что переваривает файл? Должен быть более простой способ, чем безопасная передача файла, заключенного в протокол, который сам по себе содержит нужные вам данные.   -  person tMC    schedule 02.06.2011
comment
Я хотел бы услышать, что есть, но я не могу придумать никакого способа.   -  person Sam    schedule 02.06.2011
comment
Я бы просто прослушивал неясный сокет UDP для входящих дейтаграмм. Полезной нагрузкой может быть имя хоста; IP-адрес можно получить из заголовка. Если безопасность является проблемой, просто подпишите полезную нагрузку - шифрование бесполезно, поскольку нужная вам информация (ip-адрес) в любом случае находится в заголовке IP. java2s.com/Code/Python/Network/UDPExample.htm   -  person tMC    schedule 02.06.2011
comment
Я не совсем уверен, как изменить этот сценарий, чтобы он делал то, что я хочу, когда я ввожу имя хоста (x.com), он говорит, что «x» не определено. Кроме того, разве это не мой внутренний IP-адрес?   -  person Sam    schedule 02.06.2011
comment
Имена хостов представляют собой строки, поэтому их необходимо заключать в кавычки «x.com». Если вы никогда раньше не использовали Python, было бы полезно выучить язык, прежде чем пытаться создать сетевой инструмент. diveintopython.org   -  person tMC    schedule 02.06.2011
comment
По какой причине вы не используете одну из множества доступных служб динамического DNS?   -  person nobody    schedule 02.06.2011
comment
Андрей ты прав! Спасибо, что напомнили!   -  person Sam    schedule 02.06.2011


Ответы (1)


Я бы отправил через XMPP. Вы можете настроить службу прослушивания для сервера.

Отправить сообщение xmpp с помощью библиотеки Python

Вот несколько идей о серверах XMPP для запуска на вашем сервере IIS (прослушивание для получения входящих сообщений от клиентов http://metajack.im/2008/08/26/choosing-an-xmpp-server/

Крендель выглядит красиво

этот код Python можно запустить на стороне клиента, чтобы получить общедоступный IP-адрес.

host, aliaslist, lan_ip = socket.gethostbyname_ex(socket.gethostname())
print host
print aliaslist
print lan_ip[0]

Чем вы отправляете через сообщение XMPP, содержащее IP-адрес, на сервер, который вы настроили на своем сервере IIS. В зависимости от того, что вы хотите сделать с IP-адресом, как только он попадет на сервер, вы будете обрабатывать сообщение на стороне сервера.

person Hortinstein    schedule 01.06.2011
comment
Итак, теперь я понимаю, как это будет работать, но не могли бы вы подробнее рассказать о слушателях? Я не совсем уверен, как использовать их для получения IP-адреса. - person Sam; 02.06.2011