请选择 进入手机版 | 继续访问电脑版

91看电视交流论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7839|回复: 32

关于自己学写代理的二三事(2)——php的跳转代理

[复制链接]

19

主题

9

好友

1万

积分

论坛元老

Rank: 10Rank: 10Rank: 10

发表于 2014-6-16 21:08:11 |显示全部楼层
本帖最后由 wfr3721 于 2014-6-16 21:21 编辑

《关于自己写代理的二三事》的帖子上线后,大家都很支持,谨表感谢,最近工作太忙,没来得及更新,先道歉。现在我们继续。

上次分析了各大门户直播青睐有加的m3u8格式文件的基本构成。用播放器(比如VLC,或者盒子直播软件)打开有效的m3u8地址,就可以播放直播节目了。
有朋友问写好的m3u8文件放在哪里,这个想法有偏差。因为m3u8文件的内容是服务商实时刷新的,我们不可能上传m3u8文件到自己的网站空间然后手动更新,这个过程应该由我们的代理程序完成。换句话说,代理的作用是,靠编写好的程序自动生成或者跳转到有访问限制的m3u8文件。这个过程听上去很绕,也许是楼主表达能力不行,不过大家别着急,听我慢慢说。

首先说说程序怎么写。一般我们采用php语言,因为强大且易用。写好php代码,上传到自己的网站空间,就可以了。

我们需要申请一个php空间。已经有php空间的朋友可以跳过这一段。国内和国外的收费的空间很多,当然免费的也不少。楼主在国外,一直用000webhost.com和hostinger.co.uk的免费php空间,以及Google的开放应用平台,虽然限制不少,但基本在美国很大的数据中心,所以在国外访问速度不错,做代理足够了。当然,国内访问可能很慢很不稳定,原因你懂的。最近才发现楼主太out,居然没注意到百度和新浪都有类似的应用开放平台,按访问次数流量等计费,尤其是新浪的SinaAppEngine,可以用云豆付费,云豆新浪会送很多,足够自己用或跟几个朋友分享。只要有微博帐号,就可以根据提示注册一个SAE开放者帐号,一定记住验证密码,因为后面上传应用要用到。注册过程很简单,略去不谈。注册成功后,可以在控制台选择创建新应用,域名选个自己喜欢的,名称选个自己喜欢的,开发语言选php,应用类型选web应用,点击创建应用,输入安全密码,就可以啦。应用创建成功之后,控制台里就可以看到我们新创建的应用在里面了。点击应用名称就可以进入应用管理页面。选择左边栏“代码管理”,再点击“创建一个版本“,版本号1,创建。这时候,已经可以通过二级域名http://XXX.sinaapp.com访问运行了。默认的内容是显示“Hello,SAE!”。回到代码管理界面,选择“操作-编辑代码”,就打开了在线代码编辑器,一般写代码和维护的工作就可以在这里进行了,写完保存,就可以立即访问进行测试,非常方便。index.php就是访问域名http://XXX.sinaapp.com时默认运行的php程序。打开,可以看到,
  1. <?php
  2. echo '<strong>Hello, SAE!</strong>';
复制代码
第1行是说,我是php程序。
第2行,echo的意思是在屏幕上显示,单引号里面的内容就是我们看到的显示的内容。<strong>和</strong>表示他们中间的文字要加粗显示。这就是一个最简单的php程序,你可以试着修改单引号里面的内容,保存,再运行试试看,怎么样,你已经会写简单的php程序了呢。
当然,只会echo这一个功能是不够做代理的,我们边走边看,根据例子慢慢学。

下面引入演练教学,我们找一些不那么敏感的敏感源练练手。比如我们来看Λ⊥dd,虽然公认是很不错的已经被提取且广泛散播的源。Λ⊥dd全套地址本站帖子有,比如CCTV-5
  1. http://ppu.17kds.net/live/5/30/06c11d0b6c4a436e9133329b719e737d.m3u8?type=tv
复制代码
Λ⊥dd使用了CDN加速,也就是各地各个运营商有很多服务器,用户访问流畅。默认情况下,你请求上面地址的时候,本地运营商的dns会把域名解析到适合的服务器。但这个自动解析有时候并不流畅,于是本坛很多帖子(这里这里这里)都提到,我们可以把ppu.17kds.net换成服务器的ip地址,比如上海移动的服务器:
  1. http://117.135.161.16/live/5/30/06c11d0b6c4a436e9133329b719e737d.m3u8?type=tv
复制代码
你当然可以直接把这个写在你的盒子自定义频道里,但比如过一阵这个ip不流畅了你想换一个,或者Λ⊥dd调整了type的参数,你是否也要一个一个频道的修改呢?也许你可以导出,批量替换,再导入……但总是麻烦的。

我们现在写一个代理,它的功能是,当访问这个代理的时候,会跳转到我们选定的Λ⊥dd服务器上播放直播节目。
在SAE的代码编辑器里面,新建一个文件,叫test.php,内容如下,
  1. <?php
  2. $id=$_GET['id'];
  3. $tp=$_GET['tp'];
  4. $url="http://117.135.161.16/live/5/".$tp."/".$id.".m3u8?type=tv";
  5. header('location:'.urldecode($url));
复制代码
我们来解释这个代理。先看第4行,$url是一个字符串变量,我们用它存储我们想要跳转的地址。它的定义里有两个变量字符串,一个是$tp,一个是$id。引号里面的内容表示原文保存,中间的圆点.用于把字符串连接到一起。你可以发现Λ⊥dd系列地址中,只有这两部分是根据频道变化的,所以我们在第2行、第3行,获得用户需要请求的$id$tp,变量的名字可以随便起,你叫$amao,$agou也可以。第5行就是说,我们要跳转到$url里面存储的地址。保存代码,我们现在试着调用。

用VLC或者盒子直播软件访问
  1. http://XXX.sinaapp.com/test.php?tp=30&id=06c11d0b6c4a436e9133329b719e737d
复制代码
应该可以正常播放CCTV-5。
如果访问
  1. http://XXX.sinaapp.com/test.php?tp=45&id=e9301e073cf94732a380b765c8b9573d
复制代码
就是湖南卫视。

如果以后要维护Λ⊥dd地址,只要不是Λ⊥dd官方大改,就可以通过修改$url的内容完成。

这是一个很简单的代理,算是一个简单的开始。增加一点点实用性和难度,请大家仔细研究admin的这个帖子http://bbs.91kds.net/thread-358-1-1.html。里面还有抓取网页内容file_get_contents,字符串匹配preg_match等功能,都是写代理常用的。

楼主还会继续更新,接下来会有一些更实用的例子。想进一步学习的朋友请再研究一下http://bbs.91kds.net/thread-951-1-2.html,可以结合我们上次谈到的m3u8文件的结构,下次我们可以细细解释这个代理。楼主水平有限,但会努力有问必答,谢谢大家。

  • 赞一个!

    fjiptv 威望 +8 金币 +8 贡献 +10

  • 赞一个!

    ivv333 威望 +5 金币 +5 贡献 +5

  • 很给力!

    admin 威望 +10 金币 +100 贡献 +10

  • 很给力!

    郑州销售DVB 金币 +2

  • 很给力!

    季风 威望 +5 金币 +5 贡献 +5

0

主题

0

好友

5778

积分

钻石会员

Rank: 8Rank: 8

8钻石会员
5778/10000
发表于 2014-6-16 21:44:24 |显示全部楼层
虽然看不明白,还谢谢楼主 的用心
回复

使用道具 举报

0

主题

0

好友

5778

积分

钻石会员

Rank: 8Rank: 8

8钻石会员
5778/10000
发表于 2014-6-16 21:58:14 |显示全部楼层
楼主有什么好点的免费空间吗,是用来做代理的
回复

使用道具 举报

19

主题

9

好友

1万

积分

论坛元老

Rank: 10Rank: 10Rank: 10

发表于 2014-6-16 22:00:10 |显示全部楼层
zhong 发表于 2014-6-16 21:58
楼主有什么好点的免费空间吗,是用来做代理的

新浪的SAE啊,上面有写。
回复

使用道具 举报

3

主题

0

好友

1695

积分

金牌会员

Rank: 6Rank: 6

6金牌会员
1695/3000
发表于 2014-6-16 22:27:34 |显示全部楼层
慢慢的试着去弄一下,谢谢楼主扫盲
回复

使用道具 举报

3

主题

1

好友

1231

积分

金牌会员

Rank: 6Rank: 6

6金牌会员
1231/3000
发表于 2014-6-16 22:28:39 |显示全部楼层
很好,好好拜读一下。
回复

使用道具 举报

8

主题

0

好友

5554

积分

钻石会员

Rank: 8Rank: 8

8钻石会员
5554/10000
发表于 2014-6-16 22:58:03 |显示全部楼层
絕對的老師
回复

使用道具 举报

104

主题

1

好友

1万

积分

论坛元老

Rank: 10Rank: 10Rank: 10

发表于 2014-6-17 10:21:56 |显示全部楼层
本帖最后由 麻麻 于 2014-6-17 10:23 编辑

谢谢!支持!敬礼!期待!
回复

使用道具 举报

4

主题

2

好友

8578

积分

钻石会员

Rank: 8Rank: 8

8钻石会员
8578/10000
发表于 2014-6-17 11:19:13 |显示全部楼层
仔细研究研究。多谢楼主。
回复

使用道具 举报

6

主题

1

好友

1200

积分

金牌会员

Rank: 6Rank: 6

6金牌会员
1200/3000
发表于 2014-6-17 12:03:17 |显示全部楼层
这是个有耐心的老师,讲解的不错,图文并茂,加分以表感谢。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册



91看电视|联系我们|赞助论坛|积分规则|申请友链|91看电视4群

Archiver|手机版|91看电视

GMT+8, 2017-12-18 07:13 , Processed in 0.032298 second(s), 30 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc. 站长论坛

回顶部