找出进程通过PHP侦听的端口

时间:2011-12-09 03:09:45

标签: php winapi com

我有一个运行PHP + Apache的Windows服务器

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";
}

某些进程侦听某些端口,我想知道哪个进程正在侦听哪个端口。

我已经搜索了一下并且读了GetExtendedTcpTableGetExtendedUdpTable方法可以帮助我解决这个问题。我已经读过这些也是win32 API的一部分,但是,我不知道如何从PHP调用这些方法(或者甚至可以根本不用)。

我还阅读了netstat -a -b -n,我可以使用exec函数调用它,但我认为通过Win32 API提问它会比解析输出更清晰,更快命令行程序。

1 个答案:

答案 0 :(得分:0)

有一个实验函数:w32api_invoke_function可以帮助您调用GetExtendedTcpTable。