|
|
@ -12,31 +12,39 @@ define('EP_ID', @$_GET['ep_id']);
|
|
|
|
define('SS_ID', @$_GET['season_id']);
|
|
|
|
define('SS_ID', @$_GET['season_id']);
|
|
|
|
define('QN', @$_GET['qn']);
|
|
|
|
define('QN', @$_GET['qn']);
|
|
|
|
define('BILIROAMING_VERSION', @$_SERVER['HTTP_X_FROM_BILIROAMING']);
|
|
|
|
define('BILIROAMING_VERSION', @$_SERVER['HTTP_X_FROM_BILIROAMING']);
|
|
|
|
|
|
|
|
define('BILIROAMING_VERSION_CODE', @$_SERVER['HTTP_BUILD']);
|
|
|
|
$baned = 0;
|
|
|
|
$baned = 0;
|
|
|
|
$th_paths = array("/intl/gateway/v2/app/search/type","/intl/gateway/v2/app/search/v2","/intl/gateway/v2/app/subtitle","/intl/gateway/web/v2/subtitle","/intl/gateway/v2/ogv/view/app/season","/intl/gateway/v2/ogv/view/app/season2","/intl/gateway/v2/ogv/playurl");
|
|
|
|
$th_paths = array("/intl/gateway/v2/app/search/type","/intl/gateway/v2/app/search/v2","/intl/gateway/v2/app/subtitle","/intl/gateway/web/v2/subtitle","/intl/gateway/v2/ogv/view/app/season","/intl/gateway/v2/ogv/view/app/season2","/intl/gateway/v2/ogv/playurl");
|
|
|
|
if (BILIROAMING_VERSION == '') {
|
|
|
|
$get_area = @$_GET['area'];
|
|
|
|
|
|
|
|
if (BILIROAMING_VERSION == '' && BILIROAMING_VERSION_CODE == '') {
|
|
|
|
if (BILIROAMING == 1 && WEB_ON == 0) { //仅限漫游用户,且未开放web脚本
|
|
|
|
if (BILIROAMING == 1 && WEB_ON == 0) { //仅限漫游用户,且未开放web脚本
|
|
|
|
$baned = 10;
|
|
|
|
block(10, "服务器限漫游使用");
|
|
|
|
block($baned);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (@$_GET['area'] == '' || @$_GET['area'] == 'false') { //web脚本,兼容泰区无area情况
|
|
|
|
if ($get_area == '' || $get_area == 'false') { //web脚本,兼容泰区无area情况
|
|
|
|
if (in_array($path, $th_paths)) {
|
|
|
|
if (in_array($path, $th_paths)) {
|
|
|
|
define('AREA', 'th');
|
|
|
|
define('AREA', 'th');
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
define('AREA', 'noarea');
|
|
|
|
define('AREA', 'noarea');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
define('AREA', @$_GET['area']);
|
|
|
|
define('AREA', $get_area);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else if (@$_GET['area'] == '') { //适配老漫游版本,兼容泰区无area情况
|
|
|
|
} else if (BILIROAMING_VERSION != '' && BILIROAMING_VERSION_CODE != '') {
|
|
|
|
|
|
|
|
if ((int)BILIROAMING_VERSION_CODE < ROAMING_MIN_VER) {
|
|
|
|
if (in_array($path, $th_paths)) {
|
|
|
|
block(14, "哔哩漫游模块版本过低");
|
|
|
|
define('AREA', 'th');
|
|
|
|
}
|
|
|
|
|
|
|
|
//适配老漫游版本,兼容泰区无area情况
|
|
|
|
|
|
|
|
if ($get_area == '') {
|
|
|
|
|
|
|
|
if (in_array($path, $th_paths)) {
|
|
|
|
|
|
|
|
define('AREA', 'th');
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
define('AREA', 'oldversion');
|
|
|
|
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
define('AREA', 'oldversion');
|
|
|
|
define('AREA', $get_area);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
define('AREA', @$_GET['area']);
|
|
|
|
block(15, "错误请求头");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (@$_GET['ts'] == '') {
|
|
|
|
if (@$_GET['ts'] == '') {
|
|
|
|
define('TS', time());
|
|
|
|
define('TS', time());
|
|
|
@ -44,55 +52,17 @@ if (@$_GET['ts'] == '') {
|
|
|
|
define('TS', @$_GET['ts']);
|
|
|
|
define('TS', @$_GET['ts']);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (in_array(EP_ID, $epid_list) && BAN_EP == 1) {
|
|
|
|
if (in_array(EP_ID, $epid_list) && BAN_EP == 1) {
|
|
|
|
$baned = 11;
|
|
|
|
block(11, "ep_id黑名单");
|
|
|
|
block($baned);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (in_array(CID, $cid_list) && BAN_CID == 1) {
|
|
|
|
if (in_array(CID, $cid_list) && BAN_CID == 1) {
|
|
|
|
$baned = 12;
|
|
|
|
block(12, "cid黑名单");
|
|
|
|
block($baned);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (in_array(AREA, $BAN_SERVER_AREA)) {
|
|
|
|
if (in_array(AREA, $BAN_SERVER_AREA)) {
|
|
|
|
$baned = 13;
|
|
|
|
block(13, "area黑名单");
|
|
|
|
block($baned);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function block($baned){
|
|
|
|
function block($code, $reason){
|
|
|
|
switch ($baned) {
|
|
|
|
http_response_code(200); // B站就是都返回200
|
|
|
|
case 10:
|
|
|
|
exit('{"code":-'.$code.',"message":"'.$reason.'"}');
|
|
|
|
$reason = "服务器限漫游使用";
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 11:
|
|
|
|
|
|
|
|
$reason = "ep_id黑名单";
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 12:
|
|
|
|
|
|
|
|
$reason = "cid黑名单";
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 13:
|
|
|
|
|
|
|
|
case 30:
|
|
|
|
|
|
|
|
$reason = "area黑名单";
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 20:
|
|
|
|
|
|
|
|
$reason = "访问密钥已过期或不存在(脚本设置左下角重新授权)";
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 21:
|
|
|
|
|
|
|
|
$reason = "uid黑名单";
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 22:
|
|
|
|
|
|
|
|
$reason = "uid不在白名单";
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 23:
|
|
|
|
|
|
|
|
$reason = "未提供访问密钥(漫游需要登录、脚本需要授权)";
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 31:
|
|
|
|
|
|
|
|
$reason = "此API仅限漫游用户,若误封请到这里提出 github.com/david082321/BiliRoaming-PHP-Server/issues";
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 32:
|
|
|
|
|
|
|
|
$reason = "服务器未开放web接口";
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
|
|
|
$reason = "未知错误";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
http_response_code(404);
|
|
|
|
|
|
|
|
exit('{"code":-418,"message":"'.$reason.'"}');
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
?>
|
|
|
|
?>
|
|
|
|