Использование GetExtendedTcpTable в Python - PullRequest
0 голосов
/ 16 сентября 2009

Я пытаюсь использовать GetExtendedTcpTable через программу Python. В основном я пытаюсь преобразовать «ActiveState Code Recipe 392572: Использование Win32 IPHelper API» в «Получение активных соединений TCP / UDP с помощью функции GetExtendedTcpTable» .

Моя проблема в том, что я не могу заставить скрипт Python распознавать TCP_TABLE_CLASS.TCP_TABL \ E_OWNER_PID_ALL.

Я пытался

ctypes.windll.iphlpapi.

но это всегда приводит к ошибке "AttributeError: функция 'TCP_TABLE_CLASS' не найдена"

Я также пытался

ctypes.windll.iphlpapi.GetExtendedTcpTable (NULL, ctypes.

, который получает те же результаты.

Любые рекомендации приветствуются.

Вырез

Ответы [ 2 ]

1 голос
/ 16 сентября 2009

TCP_TABLE_CLASS - это перечисление

typedef enum  {
  TCP_TABLE_BASIC_LISTENER,
  TCP_TABLE_BASIC_CONNECTIONS,
  TCP_TABLE_BASIC_ALL,
  TCP_TABLE_OWNER_PID_LISTENER,
  TCP_TABLE_OWNER_PID_CONNECTIONS,
  TCP_TABLE_OWNER_PID_ALL,
  TCP_TABLE_OWNER_MODULE_LISTENER,
  TCP_TABLE_OWNER_MODULE_CONNECTIONS,
  TCP_TABLE_OWNER_MODULE_ALL 
} TCP_TABLE_CLASS, *PTCP_TABLE_CLASS;

Вы должны определить его в своем скрипте Python с некоторыми константами. Это не экспортируется DLL.

  TCP_TABLE_BASIC_LISTENER = 0
  TCP_TABLE_BASIC_CONNECTIONS = 1
  TCP_TABLE_BASIC_ALL = 2
  TCP_TABLE_OWNER_PID_LISTENER = 3
  TCP_TABLE_OWNER_PID_CONNECTIONS = 4
  TCP_TABLE_OWNER_PID_ALL = 5
  TCP_TABLE_OWNER_MODULE_LISTENER = 6
  TCP_TABLE_OWNER_MODULE_CONNECTIONS = 7
  TCP_TABLE_OWNER_MODULE_ALL = 8

0 голосов
/ 16 сентября 2009

В данном случае, так как:

typedef enum { TCP_TABLE_BASIC_LISTENER, TCP_TABLE_BASIC_CONNECTIONS, TCP_TABLE_BASIC_ALL, TCP_TABLE_OWNER_PID_LISTENER, TCP_TABLE_OWNER_PID_CONNECTIONS, TCP_TABLE_OWNER_PID_ALL , TCP_TABLE_OWNER_MODULE_LISTENER, TCP_TABLE_OWNER_MODULE_CONNECTIONS, TCP_TABLE_OWNER_MODULE_ALL } TCP_TABLE_CLASS, * PTCP_TABLE_CLASS;

Я использовал '5', и это сработало.

Спасибо, Вырез

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...