找回密码
 立即注册
搜索
热搜: 活动 交友
查看: 688|回复: 11

上海 php 挂了 大神 大佬修复

[复制链接]

1

主题

120

回帖

222

积分

中级会员

积分
222
发表于 2025-12-17 17:21:42 | 显示全部楼层 |阅读模式
<?php
error_reporting(0);

/* 频道对照表 */
$n = [
    'dfws'   => 1,  // 东方卫视
    'shxwzh' => 2,  // 上海新闻综合
    'shds'   => 4,  // 上海都市
    'dycj'   => 5,  // 第1财经
    'hhxd'   => 9,  // 哈哈炫动
    'wxty'   => 10, // 五星体育
    'mdy'    => 11, // 上海魔都眼
    'jsrw'   => 12, // 上海新纪实
];

/* 没有传 id 就默认东方卫视 */
$id = $_GET['id'] ?? 'dfws';
if (!isset($n[$id])) exit('unknown channel');

/* 公共参数 */
$t       = time();
$nonce   = getnonce(8);
$version = '2.32.2';
$secret  = '28c8edde3d61a0411511d3b1866f0636';

/* 计算签名 */
$base = "Api-Version=v1&channel_id={$n[$id]}&nonce={$nonce}&platform=pc&timestamp={$t}&version={$version}&{$secret}";
$sign = md5(md5($base));

/* 请求头 */
$h = [
    "api-version: v1",
    "nonce:{$nonce}",
    "m-uuid:" . gen_uuid(),
    "platform:pc",
    "version:{$version}",
    "timestamp:{$t}",
    "sign:{$sign}",
];

/* 拉取加密播放地址 */
$url = "https://kapi.kankanews.com/content/pc/tv/channel/detail?channel_id={$n[$id]}";
$resp = json_decode(get($url, $h), true);
if (empty($resp['result']['live_address'])) {
    http_response_code(503);
    exit('get live_address failed');
}
$encrypted = $resp['result']['live_address'];
$live = decrypted($encrypted);
if (!$live) {
    http_response_code(503);
    exit('decrypt failed');
}

/* 不同频道不同处理 */
if ($id === 'shds' || $id === 'hhxd') {
    /* 返回 302 跳转 */
    $playurl = trim(strstr(m3u8($live), 'https'));
    header("Location: $playurl");
    exit;
}

/* 其它频道:返回拼装后的 m3u8 */
$burl    = dirname($live) . '/';
$playurl = preg_replace('/(.*\.ts)/i', $burl . '$1', m3u8($live));
header('Content-Type: application/vnd.apple.mpegurl');
echo $playurl;
exit;

/* ---------- 工具函数 ---------- */
function get($url, $header)
{
    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_SSL_VERIFYPEER => 0,
        CURLOPT_SSL_VERIFYHOST => 0,
        CURLOPT_REFERER        => 'https://live.kankanews.com/',
        CURLOPT_HTTPHEADER     => $header,
        CURLOPT_TIMEOUT        => 5,
    ]);
    $d = curl_exec($ch);
    curl_close($ch);
    return $d;
}

function m3u8($url)
{
    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_SSL_VERIFYPEER => 0,
        CURLOPT_SSL_VERIFYHOST => 0,
        CURLOPT_REFERER        => 'https://live.kankanews.com/',
        CURLOPT_TIMEOUT        => 5,
    ]);
    $d = curl_exec($ch);
    curl_close($ch);
    return $d;
}

/* 8 位随机 nonce */
function getnonce($len)
{
    $b = base_convert(mt_rand(1, 36 ** $len), 10, 36);
    return substr(str_pad($b, $len, '0', STR_PAD_LEFT), -$len);
}

/* 22 位 m-uuid */
function gen_uuid()
{
    $c = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    $u = '';
    for ($i = 0; $i < 22; $i++) {
        $u .= $c[mt_rand(0, 61)];
    }
    return $u;
}

/* RSA 公钥解密 */
function decrypted($str)
{
    $key = "-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDP5hzPUW5RFeE2xBT1ERB3hHZI
Votn/qatWhgc1eZof09qKjElFN6Nma461ZAwGpX4aezKP8Adh4WJj4u2O54xCXDt
wzKRqZO2oNZkuNmF2Va8kLgiEQAAcxYc8JgTN+uQQNpsep4n/o1sArTJooZIF17E
tSqSgXDcJ7yDj5rc7wIDAQAB
-----END PUBLIC KEY-----";
    $pu = openssl_pkey_get_public($key);
    if (!$pu) return '';
    $detail = openssl_pkey_get_details($pu);
    $chunk  = $detail['bits'] / 8;
    $parts  = str_split(base64_decode($str), $chunk);
    $out    = '';
    foreach ($parts as $p) {
        $tmp = '';
        openssl_public_decrypt($p, $tmp, $pu);
        $out .= $tmp;
    }
    return $out;
}

0

主题

135

回帖

802

积分

高级会员

积分
802
发表于 2025-12-17 17:34:36 | 显示全部楼层
扯淡!好好的!

1

主题

120

回帖

222

积分

中级会员

积分
222
 楼主| 发表于 2025-12-17 18:05:23 | 显示全部楼层
LQ_LQ 发表于 2025-12-17 17:34
扯淡!好好的!

我这里突然就播不了了  不知道为什么

0

主题

192

回帖

470

积分

中级会员

积分
470
发表于 2025-12-17 19:33:36 来自手机 | 显示全部楼层
没挂吧,我这php转的js正常

1

主题

120

回帖

222

积分

中级会员

积分
222
 楼主| 发表于 2025-12-17 20:07:46 | 显示全部楼层
lxxcp 发表于 2025-12-17 19:33
没挂吧,我这php转的js正常

我这里突然就播不了了  不知道为什么

304

主题

217

回帖

3989

积分

管理员

积分
3989
发表于 2025-12-17 23:51:36 | 显示全部楼层

1

主题

120

回帖

222

积分

中级会员

积分
222
 楼主| 发表于 2025-12-18 00:17:55 | 显示全部楼层
kaniptv 发表于 2025-12-17 23:51
http://kaniptv.com/forum.php?mod=viewthread&tid=426&extra=&mobile=2
有好的呀

试了 我这就是播不了 不知道为什么

1

主题

95

回帖

342

积分

中级会员

积分
342
发表于 2025-12-18 08:58:47 | 显示全部楼层
Sniper 发表于 2025-12-18 00:17
试了 我这就是播不了 不知道为什么

可以 播放
测了  没问题

5

主题

162

回帖

495

积分

中级会员

积分
495
发表于 2025-12-18 08:59:24 | 显示全部楼层
Sniper 发表于 2025-12-18 00:17
试了 我这就是播不了 不知道为什么

可能封IP了 我的也是这样

1

主题

95

回帖

342

积分

中级会员

积分
342
发表于 2025-12-18 09:01:45 | 显示全部楼层
官方网页  看看能不能播放 https://live.kankanews.com/huikan

重启猫 换个ip 试试
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋| 吾看

GMT+8, 2026-5-15 05:32 Powered by Discuz! X3.5

本站以兴趣爱好为宗旨,非经营性质,不以任何形式收取任何费用,请勿相信一切有偿信息。 免责声明:本站上述内容来自网络,不得用于商业或非法用途,您必须在下载后24小时内,从设备中删除,否则后果自负。如内容侵犯您的版权、著作权,请联系我,第一时间处理。