城通网盘API的链接研究 |
您所在的位置:网站首页 › 下载外盘 › 城通网盘API的链接研究 |
起因:我有一个项目需要大量的直链空间存储文件,而服务器本身的空间肯定是不够的 就在这时,我想到了城通网盘,存储的问题解决了,但是如何解决直链的问题呢?城通网盘本身的直链有十分严苛的流量限制,而现存的城通解析API普遍失效。我便写出了这篇文章。 1.城通密码API解析现在的城通网盘都带上了密码,用户使用链接的时候会先被跳转到一个页面输入密码。而这个页面的“确认按钮”绑定了verify_passcode事件。 verify_passcode事件的内部代码很简单: //文件名:Undertale v1.001 (Edited by Sxxfgh).7z //文件链接:https://url21.ctfile.com/f/35031121-532806680-924b31 //访问密码:6290 //以下为当前网页的变量对应 api_server = 'https://webapi.ctfile.com'; file_id = 532806680; folder_id = 0; userid = 35031121; $("#passcode").val() = 6290; //Math.random()会生成一个随机小数 //让我们在看以下代码 function verify_passcode() { $.ajax({ type: 'GET', url: api_server + "/passcode.php?file_id=" + file_id + "&folder_id=" + folder_id + "&userid=" + userid + "&passcode=" + $("#passcode").val() + "&r=" + Math.random(), dataType: 'json', success: function (res) { if (res.code == 200) { passcode = res.passcode; init_load(); } else { error_code_handler(res); } loadtextad(); }, }); }而上面的代码综合一下就是用"GET"方式访问: https://webapi.ctfile.com/passcode.php?file_id=532806680&folder_id=0&userid=35031121&passcode=6290&r=0.11188067487366626 -------------------------------------------- 也别慢慢研究了,直接给答案 2-1.获取文件信息 fileID = "35031121-532806680-924b31"; //文件ID,网址后的东西 pass = "6290"; //文件密码 r = Math.random(); //随机一个小于1的小数 fileInfoUrl = "https://webapi.ctfile.com/getfile.php?path=f&f=" + fileID + "&passcode=" + pass + "&token=false&r=" + r;fileInfoUrl 为一个可以获取到Json的网址,获取到Json之后各位可以自己看着做——所有的信息全在Json文件里。 2-2.获取文件直链直链API需要很多东西——而这些东西在信息API中竟然全有! fileID = "35031121-532806680-924b31"; //文件ID,网址后的东西 pass = "6290"; //文件密码 r = Math.random(); //随机一个小于1的小数 fileInfoUrl = "https://webapi.ctfile.com/getfile.php?path=f&f=" + fileID + "&passcode=" + pass + "&token=false&r=" + r; xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if (xhr.readyState == 4) { jsonText = JSON.parse(xhr.responseText); } }; xhr.open('get', fileInfoUrl); xhr.send(null); fileUrl = "https://webapi.ctfile.com/get_file_url.php?uid=" + jsonText.userid + "&fid=" + jsonText.file_id + "&file_chk=" + jsonText.file_chk + "&app=0&acheck=2&rd=" + Math.random() // fileUrl 也是一个 json 文件的链接,直链就直接在里面了有事,先溜了,具体发现过程以后讲吧 2022-03-19更新----------- 3-1.获取VIP直链在上面的一堆接口中我们看到了有一个名为https://webapi.ctfile.com/getfile.php的接口,城通网盘官方是这么描述这个接口的—— 查询文件信息及获取VIP下载地址。 通过本接口可以通过用户ID和文件编号的组合查询文件信息,并获取VIP高速下载地址。 请注意,文件查询接口必须提供真实的访问来源 (ref参数),若不提供将被拦截和停止使用接口。 这说明此接口有个【要求】,即为必须提供ref参数,也就是真实的访问来源。 此接口有如下的参数表 参数名是否必须类型说明f是string文件IDpasscode否string如文件需要访问密码,可在此提供token否string用户登录时获取的登陆密钥r否string随机数,防止浏览器强制缓存ref是string访问来源地址,可通过document.referrer获取 这意味着如果我们想要使用此接口就必须要拥有“token”,至于其他的数据我们已经能够知道了——毕竟你肯定知道文件的ID和密码吧! token涉及到另一个城通API: https://rest.ctfile.com/v1/user/auth/login怎么使用呢?很简单明了 https://rest.ctfile.com/v1/user/auth/login?email=xxx&password=xxx email是邮箱,password是密码,至于验证码?抱歉,不存在! 使用GET方式后返回: {"code":200,"token":"dd4b4fcb445cb1c60e5f682fd39fk3a7"}token就是我们需要的【令牌】,通过登录接口获取的token有效期为三天。 r为一个随机数,这个随机数是什么都没关系,毕竟它被设置的初衷就是“防止浏览器缓存” ref为来源网址,即为你使用该API的网站的网址,建议填入,否则可能会出现接口禁用的情况。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |