抖音海外版Tik Tok使用指南
一、Tik Tok使用方法
1.安卓去下载Tik Tok破解版本即可突破区域限制;
2.苹果可以自己使用 MonkeyDev 去破解安装,无需越狱。(需要有苹果电脑、开发经验和MonkeyDev知识,难度较大)
教程如下:
https://www.jianshu.com/p/9778959a8c24
项目地址如下:
https://github.com/AYJk/AYTikTokPod
3.本文介绍的代理+自定义规则方法:
工具:Fiddler
原理:
抖音海外版Tik Tok在每一次Get/Post请求,均检查"carrier_region=CN"、"mcc_mnc=46002"、"is_my_cn=1"、"sys_region=CN"这几个参数。
因此,本文尝试使用Fiddler软件代理的方式,在Fiddler代理服务器端使用自定义规则功能修改这4个参数的值,目的是改成日本区域的值:
日区参数值为:
"carrier_region=JP"、"mcc_mnc=46001"、"is_my_cn=0"、"sys_region=JP"
步骤(整个过程手机和电脑必须在同意局域网):
1.Windows 平台安装Fiddler,启动Fiddler。
2.配置Fiddler,跟着教程走:
https://blog.csdn.net/u010142437/article/details/79700142
https://www.cnblogs.com/meitian/p/4997310.html
(注意事项:安卓和苹果都必须安装和信任Fiddler的证书之后,Fiddler才能正常抓取手机的链接)
(安卓注意:安卓8.0 及以上的系统已经不支持信任证书,信任了也没用,所以安卓可能就会出现配置好了,有些软件有网,有些没有网)
(苹果注意:安装证书后还需要打开:设置->通用->关于本机,滑到最下面->证书信任设置->打开DO_NOT_TRUST_FiddlerRoot的开关)
3.将我的自定义规则(代码)放到指定函数下:
菜单栏->规则(Rules)->自定义规则(Customize Rules)
我的代码:
// 自定义代码 var isTikTokRequest = 0; if(oSession.fullUrl.Contains("tiktokv.com")) {// Tik Tok标志 isTikTokRequest = 1; } else { //其它请求 } if(isTikTokRequest == 1) { // 在这里切换地区或国家 var country = 2; switch(country) { case 0: // 香港 oSession.url = oSession.url.Replace("carrier_region=CN", "carrier_region=HK"); oSession.url = oSession.url.Replace("mcc_mnc=46002", "mcc_mnc=45400"); oSession.url = oSession.url.Replace("is_my_cn=1", "is_my_cn=0"); oSession.url = oSession.url.Replace("sys_region=CN", "sys_region=HK"); break; case 1: // 台湾: oSession.url = oSession.url.Replace("carrier_region=CN", "carrier_region=TW"); oSession.url = oSession.url.Replace("mcc_mnc=46002", "mcc_mnc=46693"); oSession.url = oSession.url.Replace("is_my_cn=1", "is_my_cn=0"); oSession.url = oSession.url.Replace("sys_region=CN", "sys_region=TW"); break; case 2: // 日本 oSession.url = oSession.url.Replace("carrier_region=CN", "carrier_region=JP"); oSession.url = oSession.url.Replace("mcc_mnc=46002", "mcc_mnc=46001"); oSession.url = oSession.url.Replace("is_my_cn=1", "is_my_cn=0"); oSession.url = oSession.url.Replace("sys_region=CN", "sys_region=JP"); break; case 3: // 韩国 oSession.url = oSession.url.Replace("carrier_region=CN", "carrier_region=KR"); oSession.url = oSession.url.Replace("mcc_mnc=46002", "mcc_mnc=450"); oSession.url = oSession.url.Replace("is_my_cn=1", "is_my_cn=0"); oSession.url = oSession.url.Replace("sys_region=CN", "sys_region=KP"); break; case 4: // 美国 oSession.url = oSession.url.Replace("carrier_region=CN", "carrier_region=US"); oSession.url = oSession.url.Replace("mcc_mnc=46002", "mcc_mnc=31001"); oSession.url = oSession.url.Replace("is_my_cn=1", "is_my_cn=0"); oSession.url = oSession.url.Replace("sys_region=CN", "sys_region=US"); break; case 5: // 新加坡 oSession.url = oSession.url.Replace("carrier_region=CN", "carrier_region=SG"); oSession.url = oSession.url.Replace("mcc_mnc=46002", "mcc_mnc=525"); oSession.url = oSession.url.Replace("is_my_cn=1", "is_my_cn=0"); oSession.url = oSession.url.Replace("sys_region=CN", "sys_region=SG"); break; case 6: // 马来西亚 oSession.url = oSession.url.Replace("carrier_region=CN", "carrier_region=MY"); oSession.url = oSession.url.Replace("mcc_mnc=46002", "mcc_mnc=502"); oSession.url = oSession.url.Replace("is_my_cn=1", "is_my_cn=0"); oSession.url = oSession.url.Replace("sys_region=CN", "sys_region=MY"); break; case 7: // 澳大利亚 oSession.url = oSession.url.Replace("carrier_region=CN", "carrier_region=AU"); oSession.url = oSession.url.Replace("mcc_mnc=46002", "mcc_mnc=505"); oSession.url = oSession.url.Replace("is_my_cn=1", "is_my_cn=0"); oSession.url = oSession.url.Replace("sys_region=CN", "sys_region=AU"); break; case 8: // 泰国 oSession.url = oSession.url.Replace("carrier_region=CN", "carrier_region=TH"); oSession.url = oSession.url.Replace("mcc_mnc=46002", "mcc_mnc=520"); oSession.url = oSession.url.Replace("is_my_cn=1", "is_my_cn=0"); oSession.url = oSession.url.Replace("sys_region=CN", "sys_region=TH"); break; default://国家移动码查询地址:https://www.cnblogs.com/neo-java/p/6830319.html // 中国 do nothing } } else { // 其它请求 }
将我的代码放如函数 static function OnBeforeRequest(oSession: Session) { } 中;
由于此函数原本就有很多代码,所以将我的代码放到这个函数中的末尾即可。
最终函数的代码如下:
static function OnBeforeRequest(oSession: Session) { // Sample Rule: Color ASPX requests in RED // if (oSession.uriContains(".aspx")) { oSession["ui-color"] = "red"; } // Sample Rule: Flag POSTs to fiddler2.com in italics // if (oSession.HostnameIs("www.fiddler2.com") && oSession.HTTPMethodIs("POST")) { oSession["ui-italic"] = "yup"; } // Sample Rule: Break requests for URLs containing "/sandbox/" // if (oSession.uriContains("/sandbox/")) { // oSession.oFlags["x-breakrequest"] = "yup"; // Existence of the x-breakrequest flag creates a breakpoint; the "yup" value is unimportant. // } if ((null != gs_ReplaceToken) && (oSession.url.indexOf(gs_ReplaceToken)>-1)) { // Case sensitive oSession.url = oSession.url.Replace(gs_ReplaceToken, gs_ReplaceTokenWith); } if ((null != gs_OverridenHost) && (oSession.host.toLowerCase() == gs_OverridenHost)) { oSession["x-overridehost"] = gs_OverrideHostWith; } if ((null!=bpRequestURI) && oSession.uriContains(bpRequestURI)) { oSession["x-breakrequest"]="uri"; } if ((null!=bpMethod) && (oSession.HTTPMethodIs(bpMethod))) { oSession["x-breakrequest"]="method"; } if ((null!=uiBoldURI) && oSession.uriContains(uiBoldURI)) { oSession["ui-bold"]="QuickExec"; } if (m_SimulateModem) { // Delay sends by 300ms per KB uploaded. oSession["request-trickle-delay"] = "300"; // Delay receives by 150ms per KB downloaded. oSession["response-trickle-delay"] = "150"; } if (m_DisableCaching) { oSession.oRequest.headers.Remove("If-None-Match"); oSession.oRequest.headers.Remove("If-Modified-Since"); oSession.oRequest["Pragma"] = "no-cache"; } // User-Agent Overrides if (null != sUA) { oSession.oRequest["User-Agent"] = sUA; } if (m_Japanese) { oSession.oRequest["Accept-Language"] = "ja"; } if (m_AutoAuth) { // Automatically respond to any authentication challenges using the // current Fiddler user's credentials. You can change (default) // to a domain\\username:password string if preferred. // // WARNING: This setting poses a security risk if remote // connections are permitted! oSession["X-AutoAuth"] = "(default)"; } if (m_AlwaysFresh && (oSession.oRequest.headers.Exists("If-Modified-Since") || oSession.oRequest.headers.Exists("If-None-Match"))) { oSession.utilCreateResponseAndBypassServer(); oSession.responseCode = 304; oSession["ui-backcolor"] = "Lavender"; } // 自定义代码 var isTikTokRequest = 0; if(oSession.fullUrl.Contains("tiktokv.com")) {// Tik Tok标志 isTikTokRequest = 1; } else { //其它请求 } if(isTikTokRequest == 1) { // 在这里切换地区或国家 var country = 2; switch(country) { case 0: // 香港 oSession.url = oSession.url.Replace("carrier_region=CN", "carrier_region=HK"); oSession.url = oSession.url.Replace("mcc_mnc=46002", "mcc_mnc=45400"); oSession.url = oSession.url.Replace("is_my_cn=1", "is_my_cn=0"); oSession.url = oSession.url.Replace("sys_region=CN", "sys_region=HK"); break; case 1: // 台湾: oSession.url = oSession.url.Replace("carrier_region=CN", "carrier_region=TW"); oSession.url = oSession.url.Replace("mcc_mnc=46002", "mcc_mnc=46693"); oSession.url = oSession.url.Replace("is_my_cn=1", "is_my_cn=0"); oSession.url = oSession.url.Replace("sys_region=CN", "sys_region=TW"); break; case 2: // 日本 oSession.url = oSession.url.Replace("carrier_region=CN", "carrier_region=JP"); oSession.url = oSession.url.Replace("mcc_mnc=46002", "mcc_mnc=46001"); oSession.url = oSession.url.Replace("is_my_cn=1", "is_my_cn=0"); oSession.url = oSession.url.Replace("sys_region=CN", "sys_region=JP"); break; case 3: // 韩国 oSession.url = oSession.url.Replace("carrier_region=CN", "carrier_region=KR"); oSession.url = oSession.url.Replace("mcc_mnc=46002", "mcc_mnc=450"); oSession.url = oSession.url.Replace("is_my_cn=1", "is_my_cn=0"); oSession.url = oSession.url.Replace("sys_region=CN", "sys_region=KR"); break; case 4: // 美国 oSession.url = oSession.url.Replace("carrier_region=CN", "carrier_region=US"); oSession.url = oSession.url.Replace("mcc_mnc=46002", "mcc_mnc=31001"); oSession.url = oSession.url.Replace("is_my_cn=1", "is_my_cn=0"); oSession.url = oSession.url.Replace("sys_region=CN", "sys_region=US"); break; case 5: // 新加坡 oSession.url = oSession.url.Replace("carrier_region=CN", "carrier_region=SG"); oSession.url = oSession.url.Replace("mcc_mnc=46002", "mcc_mnc=525"); oSession.url = oSession.url.Replace("is_my_cn=1", "is_my_cn=0"); oSession.url = oSession.url.Replace("sys_region=CN", "sys_region=SG"); break; case 6: // 马来西亚 oSession.url = oSession.url.Replace("carrier_region=CN", "carrier_region=MY"); oSession.url = oSession.url.Replace("mcc_mnc=46002", "mcc_mnc=502"); oSession.url = oSession.url.Replace("is_my_cn=1", "is_my_cn=0"); oSession.url = oSession.url.Replace("sys_region=CN", "sys_region=MY"); break; case 7: // 澳大利亚 oSession.url = oSession.url.Replace("carrier_region=CN", "carrier_region=AU"); oSession.url = oSession.url.Replace("mcc_mnc=46002", "mcc_mnc=505"); oSession.url = oSession.url.Replace("is_my_cn=1", "is_my_cn=0"); oSession.url = oSession.url.Replace("sys_region=CN", "sys_region=AU"); break; case 8: // 泰国 oSession.url = oSession.url.Replace("carrier_region=CN", "carrier_region=TH"); oSession.url = oSession.url.Replace("mcc_mnc=46002", "mcc_mnc=520"); oSession.url = oSession.url.Replace("is_my_cn=1", "is_my_cn=0"); oSession.url = oSession.url.Replace("sys_region=CN", "sys_region=TH"); break; default://国家移动码查询地址:http://blog.chinaunix.net/uid-20484604-id-1941290.html // 中国 do nothing } } else { // 其它请求 } }
至此,手机Tik Tok便可以成功的访问了。
代码默认的是日本区域,可以修改var country = 2;这个参数来切换地区。