Выяснение, какие порты слушает процесс через PHP - PullRequest
1 голос
/ 09 декабря 2011

У меня Windows-сервер под управлением PHP + Apache

PHP-скрипт следит за определенными процессами (у меня есть список PID), и я могу использовать несколько Win32 API, чтобы узнать о них несколько вещей.

Например:

$obj    = new COM('winmgmts://localhost/root/CIMV2');
$list   = $obj->ExecQuery('Select * from Win32_Process');
foreach($list as $item){
    echo $item->CommandLine,"\n";
}

Некоторые процессы прослушивают некоторые порты, и я хочу выяснить, какой процесс прослушивает какой порт.

Я немного обыскал и прочитал, что методы GetExtendedTcpTable и GetExtendedUdpTable могут помочь мне в этом. Я читал, что они также являются частью Win32 API, однако я понятия не имею, как я мог бы вызывать эти методы из PHP (или, если вообще возможно).

Я также читал о netstat -a -b -n, который я мог бы вызвать с помощью функции exec, но я думаю, что запрос его через Win32 API был бы намного чище и быстрее, чем анализ результатов программы командной строки.

1 Ответ

0 голосов
/ 09 декабря 2011

Существует экспериментальная функция: w32api_invoke_function , которая может помочь вам вызвать GetExtendedTcpTable.

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