我想编写一个类似于企业网络控制台的PHP脚本,但用于PC和设备的LAN,而不是服务器的WAN。
我希望能够检查PC,复印机等是否已连接到网络。我想知道即使它们已关闭,但这是不可能的,因为 PC 会忽略数据包,除非它是局域网唤醒数据包,对吧?
检查 PC 是打开还是关闭的最佳方法是什么?我用fSocketOpen()
来测试服务器,但是大多数PC都不是服务器。它们响应ping,但没有打开端口进行连接,这意味着PHP的fSocketOpen()
不起作用,但ping可以。
您可以使用系统命令并捕获标准输出以获取结果。
只需搜索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;
}