3

我有一个联网的摄像头,可以在点击时生成视频快照 http://192.0.0.8/image/jpeg.cgi。问题是通过192.0.0.8直接访问根(即),用户可以访问实时视频源,所以我希望完全隐藏地址。

我提出的解决方案是使用 PHP 检索图像并将其显示在http://intranet/monitor/view.php. 尽管用户可以通过反复点击这个新地址来创建动作,但我认为这不太可能。

我尝试过以各种方式使用include()and readfile(),但并没有真正经常使用 PHP 来理解我是否朝着正确的方向前进。我迄今为止的最佳尝试是输出 jpeg 内容,但我没有将代码保存足够长的时间与您分享。

任何意见,将不胜感激。

4

2 回答 2

0

如果要限制每个用户的请求,请使用以下命令:

$timelimit = 30;//Limit in seconds

if(!isset($_SESSION['last_request_time'])) {
    $_SESSION['last_request_time'] = time();
}

if(time() > $_SESSION['last_request_time'] + $timelimit) {
    //prepare and serve a new image
} else {
    //serve an old image
}

如果要限制图像刷新时间,请使用相同的脚本,但将 last_request_time 保存在所有用户(数据库、文件、缓存)共享的位置

于 2012-09-20T14:01:19.423 回答
0

一个简洁的方法如下:

header('Content-Type: image/jpeg');
readfile('http://192.0.0.8/image/jpeg.cgi');

然后 jpeg 的内容作为文件直接从http://intranet/monitor/view.php.

于 2012-09-21T13:13:48.250 回答