背景1改版梅林固件,划分了VLAN,分别是网络和IPTV;
2家里小孩上学不能看太晚,管不住啊,那就定时执行关闭iptv,每天九点关闭,早上七点开启;
3用了几天想着写个插件集成到软件中心;
4目标是可以看实时的iptv状态,和控制iptv
最近在折腾 1 改版的梅林固件,顺手把家里的网络架构重新整理了一下。之前 IPTV 和普通上网全混在一起,用起来没啥问题,但一旦想做精细化控制就很麻烦。于是这次直接上 VLAN,把日常网络和 IPTV 完全隔离开,各走各的通道,互不影响。中间踩了不少坑,包括接口映射、桥接方式、DHCP 分配等,都反复测试了好几轮,才算稳定下来。做这些的初衷,其实很简单:家里小孩上学,晚上看电视没个点,口头提醒基本无效,那就只能“技术手段”介入了。于是写了几个简单脚本,通过 cron 定时任务控制 IPTV 端口的通断,每天晚上 9 点自动关闭,早上 7 点再开启。跑了几天,效果还不错,稳定性也符合预期。用着用着就觉得,现在这种方式太零散了,全靠脚本和命令行操作,对普通用户也不太友好。所以干脆想着,把这些功能封装成一个插件,直接集成到软件中心。目标也很明确:可以实时查看 IPTV 当前状态,支持一键开关,定时策略可视化配置,不用再去改脚本、重启服务,做到真正的“点几下就完事”。
下面是界面效果
定时任务截图
插件截图
控制核心代码
!/bin/sh
source /koolshare/scripts/base.sh
STATUS_FILE="/jffs/scripts/iptv_status"
IPTV_ON="/jffs/scripts/iptv_on"
IPTV_OFF="/jffs/scripts/iptv_off"
参数必须字符串
param="$2"
case "$param" in "1") if [ -x "$IPTV_ON" ]; then
sh "$IPTV_ON" echo "ON" > "$STATUS_FILE"
http_response "ON"
else
http_response "ERROR: iptv_on not found"
fi
;;
"0")
if [ -x "$IPTV_OFF" ]; then sh "$IPTV_OFF"
echo "OFF" > "$STATUS_FILE" http_response "OFF" else http_response "ERROR: iptv_off not found" fi ;; "2") if [ -f "$STATUS_FILE" ]; then
http_response "$(cat$STATUS_FILE | tr -d '\n')"
else
http_response "OFF"
fi
;;
*)
http_response "ERROR: invalid param"
;;
esac
打包好的插件,按需要自己改动。不能直接用的,怎么划分VLAN什么的自己研究
https://hdtools.lanzoum.com/iwQ7y3fn5r4d
密码:4h2w |