如何判断我的网络上的计算机是否已启用PHP?

时间:2012-08-09 00:41:38

标签: php analysis ping enterprise lan

我想写一个类似于Enterprise Network Console的PHP脚本,但是对于PC和设备的局域网而不是服务器的WAN。

我希望能够检查PC,复印机等是否已连接到网络。我想知道即使它们已关闭,但这是不可能的,因为PC会忽略数据包,除非它是一个唤醒lan数据包,对吗?

检查PC是打开还是关闭的最佳方法是什么?我使用fSocketOpen()来测试服务器,但大多数PC都不是服务器。他们对ping有反应,但没有端口可以连接,这意味着PHP fSocketOpen()不会工作但ping不行。

1 个答案:

答案 0 :(得分:2)

您可以使用系统命令并捕获stdout以获得结果。

只需搜索PHP的popen(http://uk3.php.net/popen)示例。

echo run('ping 192.168.1.5');

function run($command) {
    $command .= ' 2>&1';
    $handle = popen($command, 'r');
    $log = '';

    while (!feof($handle)) {
        $line = fread($handle, 1024);
        $log .= $line;
    }

    pclose($handle);
    return $log;
}