0

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

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

检查 PC 是否打开或关闭的最佳方法是什么?我曾经fSocketOpen()测试过服务器,但大多数 PC 都不是服务器。它们响应 ping,但没有为连接打开端口,这意味着 PHPfSocketOpen()无法工作,但 ping 可以。

4

1 回答 1

2

您可以使用系统命令并捕获标准输出以获取结果。

只需搜索 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;
}
于 2012-08-09T00:55:12.950 回答