Categories: PHP

让AI写了一个超强PHP:既能实现内网IPTV转全网通还能实现出口线路选择

在之前文章中,我们通过 Shell 脚本自动监测 PPPoE 网关变化,并实时更新静态路由表,较好地解决了”断网重连后移动 IPTV 失效”的问题。

但脚本方案有一个局限:它修改的是系统级路由表,影响范围是整个局域网所有设备的所有流量 。如果你的需求更精细化——比如只想让特定的 IPTV 链接走特定线路,而不影响其他设备——就需要一个更灵活的方案。

这就是今天要分享的:PHP 代理方案, 既能实现特定播放地址走特定线路还能实现内网节目转全网通。


一、为什么还需要 PHP 代理?

先理清两种方案的区别:

静态路由 / Shell 脚本方案

设备请求 → 路由器接管全部流量 → 按 IP 段走指定接口 → 全局域网生效
  • 优点 :一次性解决,不需要改任何客户端配置
  • 缺点 :影响范围大,任何设备访问 39.x、120.x、223.x 都会走移动线路,可能影响其他正常上网需求

PHP 代理方案

设备请求特定链接 → PHP 脚本精确匹配域名/IP → 按规则走指定接口 → 代理输出全网通地址
  • 优点 :精确控制、灵活配置、输出全网通的公网地址、支持叠加管理界面
  • 缺点 :需要在路由器上部署 Web 服务(iStoreOS 自带 PHP + Nginx,轻量无压力)

简单说:静态路由是全局策略,PHP 代理是精准手术刀


二、设计流程,让AI完成代码

很多人看到”PHP代理”就觉得复杂,其实不然。我们不需要自己写代码——只需要把要做的事说清楚,交给AI来写

下面我用最通俗的方式,把这套代理的工作流程拆成5步。只需要理解”它在做什么”,不需要懂任何编程。


🔧 第一步:建一张”规则表”——告诉代理谁该走哪条路

想象你家有两条宽带:移动宽带和电信宽带。IPTV 的视频流只有走移动宽带才能看,但你不想让所有流量都走移动。

所以,第一步就是建一张规则表,告诉代理:

“凡是访问 ucdn.sd.chinamobile.com 这类域名的,走移动网口;其他的,走默认路由。”

规则分两层:

  • 域名规则 :比如 ucdn.sd.chinamobile.comucdn-zte.sd.chinamobile.com,命中就走移动
  • IP前缀规则 :有些链接直接用IP地址,比如 39.x.x.x120.x.x.x223.x.x.x 开头的,也走移动

两层规则叠加,基本能覆盖所有移动 IPTV 链接。


🔗 第二步:接收请求——用户把链接”喂”给代理

代理本质上是一个网页脚本,用户访问它时,把目标地址带在URL里,比如:

http://192.168.1.1/proxy.php?url=http://ucdn.sd.chinamobile.com:8089/.../index.m3u8

代理收到这个请求后,把 ?url= 后面的内容拆开,识别出:

  • 这是什么协议(http 还是 https)
  • 目标主机是谁(域名或IP)
  • 端口是多少
  • 具体路径是什么

这一步就像快递员看清楚收件地址,为下一步做准备。


🚦 第三步:查规则表——决定从哪个网口出去

拿着上一步解析出来的主机地址,去规则表里查:

  1. 先查域名 :命中了就走对应网口
  2. 再查IP前缀 :域名没命中,看IP开头是不是 39/120/223,是的话走移动
  3. 都没命中 :走默认路由(电信或其他运营商)

这一步决定了这条请求从路由器的哪个网口出去


📡 第四步:发起请求——代理替你去取数据

确定了出口网卡之后,代理用 curl 命令,绑定指定网卡 ,去目标服务器取数据。


✏️ 第五步:重写地址——内网变全网通的关键

这是整个代理最核心的一步 ,也是它比静态路由强的地方。

m3u8 播放列表里,分片地址通常长这样:

/00/SNM/CHANNEL00000311/seg_001.ts  
/00/SNM/CHANNEL00000311/seg_002.ts

这些是移动的内网地址 ,你家电视或手机直接访问是访问不到的。

代理的做法是:把所有分片地址替换成代理自己的地址

# 原始地址(内网,外面访问不了)  
/00/SNM/.../seg_001.ts

# 重写后(代理地址,任何网络都能访问)  
http://192.168.1.1/proxy.php?url=http://ucdn.sd.chinamobile.com/.../seg_001.ts

播放器拿到重写后的 m3u8,每次请求分片时,实际上都在请求代理,代理再通过移动网卡去取真实数据。

结果就是:

  • ✅ 移动宽带能出去(代理从移动网卡发请求)
  • ✅ 任何网络都能访问(代理地址是普通HTTP地址)
  • ✅ 完美解决”移动源只有移动宽带能看”的问题

把需求交给AI

有了上面五步清晰的流程描述,我们把它交给AI,让它完成PHP代码的实现。


三、完整源码分享

公众号后台私信【260421】获取 proxy.php,上传到 iStoreOS 的 Web 目录(如 /www/proxy.php),通过 Nginx 访问即可。

部署路径示例https://你的路由器IP/proxy.php

使用方式 :在 IPTV 播放工具的直播源地址处,将原始地址替换为代理地址,例如:

# 原始地址  
http://ucdn.sd.chinamobile.com:8089/00/SNM/CHANNEL00000311/index.m3u8

# 代理地址(假设路由器 IP 为 192.168.1.1)  
http://192.168.1.1/proxy.php?url=http://ucdn.sd.chinamobile.com:8089/00/SNM/CHANNEL00000311/index.m3u8

由于代理输出的 m3u8 播放列表中,所有 .ts 分片地址也都经过了代理包装,所以只需替换主 m3u8 地址,分片会自动跟随。


四、PHP 代理的三大优势

结合上面的流程分析,PHP 代理相比纯静态路由方案,有以下明显优势:

✅ 仅指定链接走特定线路

通过域名和 IP 前缀两层规则精准匹配,只对 IPTV 相关链接生效。同一台设备访问其他网站完全不受影响,不需要担心”误伤”正常流量。

✅ 不需要配置静态路由或负载均衡

零路由表操作,零网络接口策略配置。部署时只需要把 proxy.php 丢到路由器的 Web 目录,配置好规则即可。没有学习成本,不需要理解复杂的路由策略。

✅ 内网转全网通

这是 PHP 代理的杀手级能力。由于所有流量都经过代理”中转”,最终输出的地址是代理服务器自己的公网地址。任何网络都能直接访问 ,完美解决”移动源只有移动宽带能看”的限制。


五、进阶玩法

基础版 proxy.php 已经能正常工作了,但如果想要更安全、更易用,可以在此基础上叠加更多功能。以下是几个思路:

🔐 1. 添加 KEY 验证

防止代理地址被恶意扫描,仅允许授权用户使用:

使用时访问:http://192.168.1.1/proxy.php?key=abc123&url=...

📊 2. 简易管理页面

可以根据逻辑写一个 index.php,实现节目管理:

代理管理页面

🎬 3. 在线播放

不需要额外打开播放器,直接在网页里看:

在线播放

📺 4. 频道列表与订阅

也可以做一个简易的频道管理页面,支持一键复制订阅地址到播放器进行播放:

订阅管理


六、总结

对比项| Shell 静态路由方案| PHP 代理方案
—|—|—
配置复杂度| 中| 低
影响范围| 全局域网| 仅指定链接
内网转全网通| ❌| ✅
支持管理界面| ❌| ✅
需要维护路由表| ✅| ❌
断网重连自恢复| ✅| ✅
支持 KEY 验证| ❌| ✅

两种方案各有适用场景:如果你只想让全局域网无感地看 IPTV,Shell 脚本足够;如果你需要更精细的控制、更广的兼容性,以及可扩展的管理界面,PHP 代理是更好的选择。

当然,两种方案也可以叠加使用,互为补充。

完整 proxy.php 源码可以后台私信【260421】获取(注分享源码只有基础功能,没有进阶功能)。有任何问题欢迎在评论区留言!

你更倾向于哪种方案?静态路由还是 PHP 代理?或者两者结合使用?评论区聊聊你的做法!

如果这篇文章解决了你的问题,别忘了点赞、在看、转发给同样爱折腾的朋友! 👇


📚 往期精彩文章推荐


🌟 与你互动

嗨~这里是【医工学习日志】的温暖小窝!
📩 随时戳一戳 :后台留言任何问题,树树会带着光速回复闪现!
💡 奇思妙想征集令
👉 遇到有趣资源?戳我分享!
👉 想看的硬核测评?甩题过来!
🔥 你的脑洞,可能成为下期爆款文章哦~

如需有偿部署服务或商务,请加V注明来意,不闲聊:



📝 栏目信息
策划编辑 ✨ 树树 ✨

技术支撑 @恩山无线论坛 & Github & 瀚思彼岸


📜 版权声明
内容说明:

  1. 原创文章转载请私信授权;

  2. 部分素材源自网络,版权归属原作者;

  3. 如觉侵权,请凭权属证明联系删除

cqshushu

Share
Published by
cqshushu

Recent Posts

udp-stream + iptv-spider才是你IPTV的最佳搭配

最近有粉丝留言:用了 iptv…

2 天 ago

IPTV-Spider 2.1.0 飞牛NAS FPK上线:可测分辨率

大家好,我是你们的老朋友医工。…

4 天 ago

URL 扫描手搓节目工具 2.3 !bug修复了

本来想等到周更时间再做更新,但…

5 天 ago