- 首发于博客园,博客园太垃圾了,遂将所有文章转移到简书
方法一
安卓去下载Tik Tok破解版本即可突破区域限制;
方法二
苹果可以自己使用 MonkeyDev 去破解安装,无需越狱。(需要有苹果电脑、开发经验和MonkeyDev知识,难度较大)
教程如下:
https://www.jianshu.com/p/9778959a8c24
项目地址如下:
https://github.com/AYJk/AYTikTokPod
方法三
本文介绍的代理+自定义规则方法:
-
工具: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)
![](https://img.haomeiwen.com/i3814687/e72abe0ebf85131a.png)
- 我的代码:
// 自定义代码
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; 这个参数来切换地区。
网友评论