1

我有一个直播视频流的链接。

http://xxx.xxx.xxx.xxx:xxx/live/stream.m3u8

我需要创建一个始终更改的动态链接,以便我可以隐藏/保护网页用户的 IP。

我看到了关于用一个秘密词和用户 IP 进行散列的建议,如下所示:

    $token = somehash($ip_address . $timestamp . $secret);
$url = 'http://site/' . $token . '/' . $timestamp . '/filename';

我的问题是......该链接如何工作?

您以这样的链接结尾,该链接不指向您的资源。

http://mysite.com/hash-code/time-stamp/filename

该链接不起作用,因为它不是有效的 URL。

有小费吗?

谢谢

4

1 回答 1

0

了解为此,您需要一个相当复杂的路由部分逻辑。建议使用将为您处理自定义路由的 PHP 框架来实现这一点,例如FuelPHPLaravel 4

例如,在 Laravel 4 中,你可以定义这样的路由:

Route::get('streams/{token}', 'StreamController@showStream');

然后,您将定义一个app/controllers/StreamController.php具有如下操作的控制器:

[..]   
class StreamController extends BaseController {
[..]

public function showStream($token) {
    $ip = Request::server('REMOTE_ADDR');
    $url = Request::url();

    // do some hashing on the user's IP and $token (and maybe a timestamp)
    // compare it with the $url the user tried to view - not going to write that code for you :)

    if($allowed) {
        return View::make('your.defined.view.with.stream');
    } else {
        return Redirect::to('/');
    }        

    [..]
}

这只是一个粗略的例子,实际的代码需要更多的努力。但我只是想给你指出正确的方向。我想保持这个答案相当简短。你的目标当然可以通过一百万种不同的方式来实现,使用无数种不同的框架,但这就是我使用 Laravel 4 实现它的方式。

于 2013-08-15T15:02:49.380 回答