Уведомления

Группа в Telegram: @pythonsu

#1 Март 29, 2011 11:45:23

vak
От:
Зарегистрирован: 2007-05-04
Сообщения: 262
Репутация: +  0  -
Профиль   Отправить e-mail  

Какой модуль нужно использовать?

Подскажите плиз какой (или какие) модуль нужно использовать, если требуется реализовать следующие функции:
1.Определять наличие или отсутствие конкретного открытого порта (tcp/utp)
2.Определить номер процесса, который открыл порт
3.Размер потребляемой памяти по номеру процесса

Операционная система: Linux/Debian



Офлайн

#2 Март 29, 2011 14:50:17

agalen
От:
Зарегистрирован: 2011-03-23
Сообщения: 185
Репутация: +  17  -
Профиль   Отправить e-mail  

Какой модуль нужно использовать?

Попробуй psutil: http://code.google.com/p/psutil/



Офлайн

#3 Март 29, 2011 17:14:06

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Какой модуль нужно использовать?

я бы консольные утилиты заюзал, например netstat, ps

Офлайн

#4 Март 30, 2011 05:03:16

vak
От:
Зарегистрирован: 2007-05-04
Сообщения: 262
Репутация: +  0  -
Профиль   Отправить e-mail  

Какой модуль нужно использовать?

o7412369815963
я бы консольные утилиты заюзал, например netstat, ps
Возможно так и придется поступить…



Офлайн

#5 Март 30, 2011 05:04:26

vak
От:
Зарегистрирован: 2007-05-04
Сообщения: 262
Репутация: +  0  -
Профиль   Отправить e-mail  

Какой модуль нужно использовать?

agalen
Попробуй psutil: http://code.google.com/p/psutil/
Не нашел в нем возможность проверять открыт конкретный tcp порт или нет. Может недоглядел?



Офлайн

#6 Март 30, 2011 05:16:44

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Какой модуль нужно использовать?

открытость порта проверяется успешным socket.bind на него с последующим закрытием сокета.



Офлайн

#7 Март 30, 2011 06:41:19

vak
От:
Зарегистрирован: 2007-05-04
Сообщения: 262
Репутация: +  0  -
Профиль   Отправить e-mail  

Какой модуль нужно использовать?

Андрей Светлов
открытость порта проверяется успешным socket.bind на него с последующим закрытием сокета.
Да, вроде получается.
Осталось подобрать решение для определения сколько процесс использует памяти.

Интересно, имеется ли возможность определить номер процесса по номеру открытого им порта?



Отредактировано (Март 30, 2011 07:28:08)

Офлайн

#8 Март 30, 2011 07:27:22

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Какой модуль нужно использовать?

>>> import psutil
>>> import os
>>> p = psutil.Process(os.getpid())
>>> p.get_memory_info()
(16719872, 71667712)



Офлайн

#9 Март 30, 2011 07:32:16

vak
От:
Зарегистрирован: 2007-05-04
Сообщения: 262
Репутация: +  0  -
Профиль   Отправить e-mail  

Какой модуль нужно использовать?

Андрей Светлов
>>> import psutil
>>> import os
>>> p = psutil.Process(os.getpid())
>>> p.get_memory_info()
(16719872, 71667712)
А без psutil можно? Проблемы при установке psutil возникли (32-x -> 64-x) , может конечно ерунда - не разбирался.



Офлайн

#10 Март 30, 2011 07:47:21

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Какой модуль нужно использовать?

Все можно. Открываете исходники psutil и копируете оттуда код в свой велосипед.
У меня проблем не было как на 32 так и на 64 битах.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version