找回密码
 立即注册
搜索
查看: 158|回复: 27

[悬赏] 书画频道

[复制链接]

393

主题

654

回帖

1万

积分

管理员

积分
13750
发表于 2026-1-19 11:52:40 | 显示全部楼层 |阅读模式
悬赏10海贝已解决
http://web.shtv.net.cn/MobileWeb/OnlineLive.aspx
书画频道的播放链接可能会变,所以需要写代理(见此贴:https://5kds.com/thread-870-1-1.html,ip变了)。

最佳答案

查看完整内容

**** 本内容被作者隐藏 ****

9

主题

326

回帖

525

积分

液晶电视迷

积分
525
发表于 2026-1-19 11:52:41 来自手机 | 显示全部楼层
游客,如果您要查看本帖隐藏内容请回复

5

主题

98

回帖

386

积分

等离子电视迷

积分
386
发表于 2026-1-19 12:30:43 | 显示全部楼层

8

主题

286

回帖

298

积分

等离子电视迷

积分
298
发表于 2026-1-19 12:42:34 | 显示全部楼层
看看你

1

主题

176

回帖

188

积分

彩电迷

积分
188
发表于 2026-1-19 12:43:21 | 显示全部楼层
看看什么东西

216

主题

811

回帖

1589

积分

OLED电视迷

积分
1589
发表于 2026-1-19 12:44:46 | 显示全部楼层

2

主题

54

回帖

72

积分

彩电迷

积分
72
发表于 2026-1-19 12:44:50 | 显示全部楼层
感谢分享         

216

主题

811

回帖

1589

积分

OLED电视迷

积分
1589
发表于 2026-1-19 13:06:56 | 显示全部楼层
本帖最后由 tengfei 于 2026-1-19 14:12 编辑
<?php
// 获取查询参数 id
$id = isset($_GET['id']) ? $_GET['id'] : null;

// 初始化 cURL 会话
$ch = curl_init();

// 配置第一个请求的 URL 和请求头
if ($id == 1) {
    // 获取第一个页面内容
    curl_setopt($ch, CURLOPT_URL, 'http://web.shtv.net.cn/MobileWeb/OnlineLive.aspx');
    $referer = 'http://web.shtv.net.cn/MobileWeb/OnlineLiveTV59.aspx'; // 第一个页面的 referer
    $port = 8233;
} elseif ($id == 2) {
    // 获取第二个页面内容
    curl_setopt($ch, CURLOPT_URL, 'http://web.shtv.net.cn/MobileWeb/OnlineLiveTV59.aspx');
    $referer = 'http://web.shtv.net.cn/MobileWeb/OnlineLive.aspx'; // 第二个页面的 referer
    $port = 8234;
} else {
    echo "无效的 id 参数";
    exit;
}

// 设置 cURL 请求选项
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  // 返回响应,而不是直接输出
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);  // 允许跟随重定向
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Referer: ' . $referer,  // 设置 Referer 请求头
    'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',  // 设置 User-Agent
]);

// 处理 Cookie,会话保持
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');  // 保存 cookie 到文件
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // 使用保存的 cookie

// 执行请求并获取响应
$html = curl_exec($ch);

// 检查请求是否成功
if (curl_errno($ch)) {
    echo 'cURL Error: ' . curl_error($ch);
    exit;
}

// 使用正则表达式匹配并提取 .m3u8 视频流地址
preg_match('/src="(http:\/\/[^"]+\.m3u8)"/i', $html, $matches);

// 检查是否找到了 .m3u8 地址
if (!empty($matches[1])) {
    // 获取视频流地址
    $video_url = $matches[1];

    // 提取视频流的 Host
    $parsed_url = parse_url($video_url);
    $host = $parsed_url['host']; // 获取主机名

    // 如果 URL 中包含端口信息,就使用该端口,否则使用默认的端口
    $port = isset($parsed_url['port']) ? $parsed_url['port'] : $port;

    // 动态生成最终的 .m3u8 播放地址
    $final_video_url = "http://$host:$port" . $parsed_url['path'];

    // 重定向到获取的 .m3u8 播放地址
    header('Location: ' . $final_video_url);
    exit;  // 必须调用 exit 来确保脚本终止执行

} else {
    // 如果未找到视频流地址
    echo "视频流地址未找到";
}

// 关闭 cURL 会话
curl_close($ch);
?>

书画线路1,hhtp/https:你的ip/域名:端口/php名称.php?id=1
书画线路2,hhtp/https:你的ip/域名:端口/php名称.php?id=2

点评

http://web.shtv.net.cn/MobileWeb/OnlineLiveTV59.aspx 这个单独访问会直接跳转到主页上面。 http://web.shtv.net.cn/Msg.aspx?msg=1 直接跳转到这上面。  发表于 2026-1-19 14:47

评分

参与人数 1海贝 +8 收起 理由
admin + 8 referer有问题

查看全部评分

216

主题

811

回帖

1589

积分

OLED电视迷

积分
1589
发表于 2026-1-19 13:07:16 | 显示全部楼层
本帖最后由 tengfei 于 2026-1-19 14:01 编辑
<?php
// 获取页面内容
$html = file_get_contents('http://web.shtv.net.cn/MobileWeb/OnlineLive.aspx');

// 使用正则表达式匹配并提取 .m3u8 视频流地址
preg_match('/src="(http[^"]+\.m3u8[^"]*)"/i', $html, $m);

// 获取原始 .m3u8 地址
$original_url = $m[1] ?? '';

// 获取 id 参数,默认 id=1
$id = isset($_GET['id']) ? $_GET['id'] : 1;

// 如果找到了原始地址,修改端口并重定向
if ($original_url) {
    // 解析原始 URL
    $parsed_url = parse_url($original_url);

    // 如果没有端口信息,默认使用 8233
    $original_port = isset($parsed_url['port']) ? $parsed_url['port'] : 8233;

    // 根据 id 改变端口号
    $new_port = ($id == 1) ? 8233 : 8234;

    // 如果原始端口与新端口不同,则修改端口
    if ($original_port !== $new_port) {
        // 重建新的 URL,替换端口
        $new_url = $parsed_url['scheme'] . '://' . $parsed_url['host'] . ':' . $new_port . $parsed_url['path'];
        // 重定向到新的 URL
        header('Location: ' . $new_url);
    } else {
        // 如果端口号未发生变化,直接重定向
        header('Location: ' . $original_url);
    }
} else {
    // 如果未找到 .m3u8 地址
    echo '视频流地址未找到';
    exit;
}
?>

书画线路1,hhtp/https:你的ip/域名:端口/php名称.php?id=1
书画线路2,hhtp/https:你的ip/域名:端口/php名称.php?id=2

评分

参与人数 1海贝 +10 收起 理由
admin + 10

查看全部评分

216

主题

811

回帖

1589

积分

OLED电视迷

积分
1589
发表于 2026-1-19 13:14:04 | 显示全部楼层
本帖最后由 tengfei 于 2026-1-19 14:20 编辑
<?php
// 获取第一个页面的内容,并保存 Cookie
$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_URL, 'http://web.shtv.net.cn/MobileWeb/OnlineLive.aspx');
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);  // 返回响应,而不是直接输出
curl_setopt($ch1, CURLOPT_HEADER, true);  // 获取响应头
curl_setopt($ch1, CURLOPT_FOLLOWLOCATION, true);  // 跟随重定向

// 执行第一个请求
$response1 = curl_exec($ch1);

// 获取 Cookie 和 Referer
$cookies = [];
$headers = [];
preg_match_all('/Set-Cookie: (.*?);/i', $response1, $cookies);  // 提取 Cookie
preg_match('/Referer: (http:\/\/[^\r\n]+)/i', $response1, $headers);  // 提取 Referer

// 从第一个请求的响应头中提取 Referer
$referer = isset($headers[1]) ? $headers[1] : '';

// 从第一个请求的响应头中提取 Cookie
$cookieStr = '';
foreach ($cookies[1] as $cookie) {
    $cookieStr .= $cookie . "; ";  // 拼接多个 cookie
}

// 使用正则提取 .m3u8 地址
preg_match('/src="(http:\/\/[^"]+\.m3u8)"/i', $response1, $matches1);

// 检查是否找到了 .m3u8 地址
if (!empty($matches1[1])) {
    // 获取第一个视频流地址
    $video_url1 = $matches1[1];

    // 提取视频流的 Host 和端口
    $parsed_url1 = parse_url($video_url1);
    $host1 = $parsed_url1['host']; // 获取主机名
    $path1 = $parsed_url1['path']; // 获取路径部分(不包括域名和端口)
    $port1 = isset($parsed_url1['port']) ? $parsed_url1['port'] : 8233;  // 获取端口,默认为8233

    // 获取 id 参数
    $id = isset($_GET['id']) ? $_GET['id'] : 1;  // 默认为 id=1

    // 根据 id 参数动态生成第二个视频流地址
    if ($id == 1) {
        // 使用第一个视频流地址(端口保持不变)
        $video_url2 = "http://$host1:$port1$path1";
    } else if ($id == 2) {
        // 修改端口为 8234,生成第二个视频流地址
        $video_url2 = "http://$host1:8234$path1";
    } else {
        // 如果 id 参数不为 1 或 2,返回错误信息
        echo "无效的 id 参数。";
        exit;
    }

    // 直接重定向到第二个 .m3u8 地址
    header('Location: ' . $video_url2);
    exit;  // 必须调用 exit 来确保脚本终止执行

} else {
    // 如果未找到 .m3u8 地址
    echo '视频流地址未找到';
    exit;
}

// 关闭 cURL 会话
curl_close($ch1);
?>

书画线路1,hhtp/https:你的ip/域名:端口/php名称.php?id=1
书画线路2,hhtp/https:你的ip/域名:端口/php名称.php?id=2

点评

拿到$matches[1],直接Location就完事了。  发表于 2026-1-19 14:21
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋

创办于 2025 年 5 月 5 日

快速回复 返回顶部 返回列表