2012-09-27 58 views
0

我目前正在寻找一种方法来保护当地广播电台的音频流,他为我提供了一个基于IP地址的无线电广播的实时WMA流(不是确切的IP,而是格式为:PHP - 保护WMA音频流

http://199.101.51.121:2013 
mms://191.101.51.121:2013 

因为他们的许可限制,他们无法公开提供流URL给用户听

本站但是广播本地OHL曲棍球队比赛直播,这。打破了电台的许可节目,所以我们希望能够提供一个我们可以启用/禁用的链接,让人们无需知道全天候活动的流的确切IP地址/ URL即可收听此流。

这是可能的,通过PHP基本上读取流文件并将其传递给用户,而不必知道流音频的实际URL?我在过去使用静态文件完成了这项工作,但无法通过我通常使用的常规文件内容和标头传递方法进行工作。

+2

请注意:一切由可通过网络是公共的,可以被检索。现在你知道你可以*尝试*通过引入DRM来阻止它。 – PeeHaa

+0

我明白这一点,但我们希望针对数据库中的设置运行检查,如果该流当前已启用,PHP文件将拉入流源...如果它被禁用,流源将不会被拉但通过主PHP文件处理它将不允许公开地看到源地址。 – user1704004

回答

0

您可以随时检查请求来自哪里。只需使用本地PHP $_SERVER并注意$_SERVER['HTTP_REFERER']

虽然这并不能给你所有你想要的控制,但它绝对是一个起点。

注意:由于@PeeHaa已经说过 - »一切都可用«。你只需要一个有技能的人。

+0

这不提供任何保护。引用者很容易被欺骗。 – PeeHaa

+0

@PeeHaa“(...)一个起点”。您可以根据需要添加尽可能多的答案。你甚至可以编辑这个:) – kaiser

1

一种选择是创建一个dyndns.org dns条目,指向您的隐藏地址,这样只有dyndns被提供,并且当您不希望侦听器只针对dyndns.org运行脚本而关闭它时或者将其指向未知的IP。没有任何东西被缓存,并且没有损害。

我们这样做是为了防止机动车辆检测站将我们的DNS/IP地址缓存到我们的服务器。当我们想切换到另一台负载均衡的机器时,我们只运行了一个更新了dyndns主机的脚本,并且客户端刚刚点击了相同的域名。 自2007年开始工作,至今仍在使用。

0

是的,你可以使用PHP的readfile()。 YOu给用户一个链接到一个PHP文件和PHP文件的输出是流音频。你只需要指定正确的头文件告诉浏览器你正在发送什么,它应该工作。

手册应该给你一些例子:http://php.net/manual/en/function.readfile.php