Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 23, 2014 10:36:35

totiks
Зарегистрирован: 2014-09-03
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Скрипт для отключения компьютера...

Здравствуйте,хотелось бы написать скрипт который слушает определенный порт и если нет на этом порту активности ,по истечению некоторого времени чтоб он отключал комп(хочу применить его для торрент клиента,дело в том что использую qbittorent,в нем эта функция есть но она почему-то не работает) ,подскажите пожалуйста какие модули задействовать, что почитать ,может есть где-то готовые реализации,заранее вам спасибо.

Офлайн

#2 Сен. 23, 2014 10:45:58

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Скрипт для отключения компьютера...

в сетях не силен, поэтому встречный вопрос. Если процесс А делает bind к порту Б то как процесс В получит к нему доступ - ведь он уже занят, а возможности подключится двоих клиентам на 1 порт я как то не представлю.
В зависимости от ОС можно вызвать через модуль subprocess нужную команду командной строки, в линуксе shutdown -h now, в винде наверняка подобное есть - Гуг в помощь.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Сен. 23, 2014 22:22:08

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

Скрипт для отключения компьютера...

totiks
скрипт который слушает определенный порт

JOHN_16
Если процесс А делает bind к порту Б то как процесс В получит к нему доступ

Также как любой снифер, простейший вариант:

#!/usr/bin/env python
#-*-coding:utf8-*-
import socket
from select import select
import sys
try:
    s = socket.socket(socket.AF_INET, socket.SOCK_RAW, 6)
except:
    sys.stderr.write('Use `sudo`')
    sys.exit(1)
s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)
s_list = []
s_list.append(s)
while len(s_list) > 0:
    sockets = select(s_list, [], [], 0)
    for s_ready in sockets:
        print(repr(s.recv(1024)))

Отредактировано Alen (Сен. 23, 2014 22:22:24)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version