当前位置: 首页 > 后端技术 > Node.js

让Github迅速起飞的脚本

时间:2023-04-03 23:27:16 Node.js

这个脚本让Github迅速腾飞。原理是通过修改本地host文件来加速访问github。如何获取国内的github代理ip地址?我找到了这个网站:http://ping.chinaz.com/github...具体思路和上面网站一样,循环请求接口获取各个机房的延迟,然后比较最低的机房delay,拿到ip,然后修改本地的Host文件,go。获取本站请求接口http://ping.chinaz.com/github...瞬间找到相似之处。界面如下:gethttp://ping.chinaz.com/iframe.ashx其中,最关键的是guid,其余参数复制即可。关于guid,右键源码,发现guid都在id为speedlist的元素下。通过下面的代码["4daa81e2-f397-4cde-bf74-b2bee84a4ea5","95b30a9e-f797-46ae-b9ef-268692caddf6","eeb78862-50d4-4823-94f2-6de143374a27","403d18aa-9a0f-4d3c-b175-f4a10683db70c-8-9-f70c-8-9-f70c-8-9-f70c-8-9-f70c-36862-50d4-4823-94f2-6de143374a27"fce30596efd3","c665eba1-e4a0-4da3-a438-404768bb5fd6","b81dffbf-3644-43a3-bf29-099816488ba2","252167a8-eaeb-491b-a4f3-319d25680f48","db86eb6ed-734e-527aaeb0b79-c13c-48b8-abc8-ae8ce1ec7f65“,”4A40427F-502E-4A85-8752-980F2D8BBAE1“,”0003D32B-8585-44480-B0EA-DD0A10A10768DD2-6a25276ab1ed","6a3749de-aa34-4b7f-96c8-f28b9a32238b","8fbd45ea-7fe2-43f5-84aa-cd3921475732","efa326df-41dd-4c7f-af5e-bd7572658d82","1f430ff0-eae9-413a-af2a-1c2a8986cff0","ca6e017e-17b8-45eb-94b3-a408b8b79f1c","4d7637d7-4950-4b79-9741-c397789bcf05","0f885910-80d6-4b77-8f1d7f79"3C928-222C-45DC-B2CD-85508E385B65“,”74CB6A5C-B044-49D0-ABEE-BF42BEB6AE05“2CB1-4482-9E48-ACBE876BD3BA“,”7F46F5C9-D719-4886-B3C0-6B6B6427908791“,”415CE02C-B3E9-4CAD-4CAD-ADBD-ADBD-BABDBABDBAB32D63263DBBARCOL-d0d56fadea64","17d812b5-ced1-4717-8669-51ce10615682","5d20130d-75e0-481e-a651-c3da8656a3b3","766a3283-4add-438d-a5bb-e8b6-eaf13903","6156cc-6ef139403"981a-8f044a98c92a”,“8d8e4cbb-10de-4573-bb56-1dd7e36feaf3”,“36317cda-2716-49e0-9cd0-4baaa0cacaf3”,“56d53df5-2784-4b70-b268-6594a216109-2fc-9b”,“1474-19472fc”2fc0-9817”74c25181-4087-459a-8035-67278afaa2f1”,“df61b0a8-f88e-4959-9e4e-c33101f4de2e”,“b615642c-ac86-4322-9fbe-4bd79e175a99","9cd12aba-b71d-4cfd-92a4-4447745ee9e1","f3edbd07-fc92-4333-8626-4f6f4ce49b0b","0fb19ea5-4a8e-49ec-b248-59dabf586240-46d03240d-46d09240-4db8db-4db86240294ae4288571","0caa7b64-4a66-4de2-b4d9-0f7d537cd8ae","942de632-7962-41e5-961b-c7ad98b31c5a","fb715e9d-f578-41bd-b95f-75cc3fe69cf2","5713f157-3378-495a-9c55-7172187e9f36",”47b7ab69-0008-4dae-8d99-54f7038f1510","9280a6f4-f3c6-4173-a77d-c2bdaac3e709","07f2f1cc-8414-4557-a8c1-27750a732f16","012834d4-5a15-4a90-9520-8515e558873f","6c84b028-554b-49f4-87bd-4f15f3eed735","eb7215a6-7f0e-4bf7-89fe-ec0e7ee9f32c","19ef9d71-e0cb-4b79-a416-8fd670f6e7ca","945fcfae-276a-4e42-9133-4d47b19",25995b46b19-89bc-14b2080f501a","a936bb02-6b19-4da5-9c82-e8bb68fcfbea","703e401a-1e50-4bda-9c82-b1ca883e3bbf","2805fa9f-05ea-46bc-8ac0-1769b782bf52","b698f5c4-0c88-4ae4-b123-ef57293ce442","9c137190-5a57-4ef5-be4b-b9add998ad52","0bf6e659-226e-402608b1",4D462057-4581-4AE1-974D-CA7CA019E700“,”E91E73DB-703D-464D-464D-A82A1E8286A19CB17456-4835-9129-038eaa9fa8b9","dc440a55-1148-480f-90a7-9d1e0269b682","3ce7a84d-191b-49a2-81a6-e32bbe2c06a0","8c0b720b-e1a1-4422-a948-e8d7ec7e4906","9365c01e-163f-4F07-B569-A9302B685C30“,”8EBDF782-2203-4BC2-9774-68FE0D3691C8“,”5BEA1430-F7C2-4146-4146-888F4-88F4-88F4-17A7DC73A953BBINGINGa394-b96b22bca9c3”,“6305bac1-7adb-48cf-aff2-d3ac2dd65dde”,“8fef9cd0-af0b-4beb-b0b0-37388c74a2ae”,“d434f9dd-c862-47e0-89cf-3633aa06156efca29”,“09a”,“09cf4eca29”,“09a”-703af9e6240f4b6","483bad95-d9a8-4026-87f4-7a56501bf5fd","87c200e0-0059-479f-8103-e9e504f735d0","bd3b89bd-aeec-4079-8c08-a86770abb830”,“cb22befe-58f9-45f6-a246-4ad66bcfa448”,“08117724-8437-4ebb-88ae-93e50f660867”,“cb9069aa-c897-4f27-bc38-98bad07def41d”,-98bad07def41d”"6c5f2077-b898-4918-86b0-9ab82273eea6","040d7a4f-3c04-462f-9e96-2bf629af4a08","cdcf3a45-8366-4ab4-ae80-75eb6c1c9fca","91937e5b-1db0-47b5-b114-c9294694f377,“C1B98Ee7-8584-4E98-8E6D049a633B6BDF”,“Eac78784-07A1-4869-BE7C-3870a8DCEBFC”,“7B578630-B705-42DC-936F-8D4703B955AC”,E33F289c-F401-"737831b4-95e1-445f-a981-c1333faf88bd","39bed414-9402-4266-AA9A-8252E958558F“,”,“54A02700-5812-4EC8-8D24-C4276C7EB080”,“5C02BCC-CCC-550E52F-04B08B080BCC-CC02BCC-CCC-05CCC-05BCC-0BCC-0BCC-0BCC-0BCC-0BCC-0BCC-0BCC-0BCC-0BCC-0BCC-0BCC-0BCC-0BCC-0BCC-0BCC-0BCC-0BCC-0”“2b0dc147-1f6c-405c-b91f-faff417cf1da”,“b2bbe313-d66d-47a3-ace2-d1229da5c28c”,“774af056-e1503f-d-4689”,“80a828bd-19ed-48c3-a035-e69f65c28c”,“774af056-e1503f-d-4689”,“80a828bd-19ed-48c3-a035-e69f6”,“126fda0b7”-4087-84a2-0b0dfa8c94ab”,“e11f1b36-2995-413c-90bb-9f3afff8caed","38806ef7-4638-4808-96e4-85047dfa5853","53e79941-312c-4343-8739-6be3cd105805","02a01d5d-5111-481f-aade-e999a584d8a4","352ba952-a177-4a65-b35c-184f080181cf",“29D2A14F-ACCC-43B8-9444444444444444444902BC”,“E7DD974-711F-4F-4FEA-90CD-3A89600A772B8c7d37949-9b15-48a7-a9f3-19f04fe20752","5cddb7c6-3a78-4ae8-9472-28d31c61b803","d8d0e98b-e201-4cd4-a392-48a3142e4bfc","a0be885d-24ad-487d-bbb0-c94cd02a137d","04cd8a98-2F21-4FE2-805F-BD663CA2CC5E“,”DC440A55-1148-480F-90A7-90A7-9D1E0269B682“,1F4C5976-8CF3-8CF3-47E7-BE111111111111111211211211219270192927019292929292929270404777040号”即4598-b6d2-cc44aa64c6f0","1e375923-e5ee-491e-ba21-621a95ef9de9","54f7f313-1a14-4075-b52a-8513811541a6"]代码constaxios=require('axios');constQueryString'=require('q);constserver=require('./server');consthosts=require('hosts-group');constdns=require('dns')控制台。log('正在查询机房信息...')Promise.all(server.map(s=>{returnaxios({url:'http://ping.chinaz.com/iframe.ashx',params:{t:'ping'},headers:{'content-type':'application/x-www-form-urlencoded'},data:QueryString.stringify({guid:s,host:'github.com',ishost:'0',isipv6:'0',编码:'vLtCvLxV07f5qlRYHoLFBPaKNX8OZFnP',检查类型:'0'})})})).then(res=>{constfinalTime=res.map(v=>v.data).reduce((acc,val)=>{constdata=eval(val)if(!data.state)returnaccconsttime=data.result.responsetimeconststime=Number(time.substring(0,time.length-2))if(isNaN(stime))returnaccif(acc&&acc.result&&acc.result.responsetime){constaccdata=eval(acc)constacctime=accdata.result.responsetimeconstaccstime=Number(acctime.substring(0,acctime.length-2))if(stime>=accstime){返回accdata}}else{返回数据}})if(finalTime){console.log('机房查询成功,延迟最低的机房为:',finalTime);}else{console.error('查询机房信息失败,可能是网络波动造成的,建议重试...')process.stdout.write("任意字符结束进程")process.stdin.on('data',()=>{process.exit(0);})return}console.log('设置DNS...')dns.lookup('github.com',(err,result)=>{hosts.remove('github.com',result)hosts.set('github.com',finalTime.result.ip)console.log('成功!打开github.com进行检查')process.stdout.write("任何字符结束进程")process.stdin.on('data',()=>{process.exit(0);})})}).catch(e=>{console.error('Thequeryfailed,theinformationis:',e)})使用下面的库:axioshosts-groupqs是用在管理员的命令行中,运行这个js文件Github启动关闭,芜湖